Windows中可以通过任务管理器来查看对应的进程信息以及系统资源等信息,Linux中则通常使用“ps aux”来查看这些信息。
查看所有进程和系统资源
ps aux或ps -le:查看所有进程即系统资源的使用,前者使用的是BSD操作系统格式,即Unix系统格式,a表示前台进程,u表示创建该进程的用户,x表示后台进程。后者为Linux标准命令格式,l表示显示详细信息,e表示显示所有进程。使用哪个命令看使用者习惯就行,但其实前者在Linux中更为常用。
ps aux输出释义(每一行为一个系统进程):
- USER:创建该进程的用户。
- PID:进程ID。
- %CPU:CPU利用率。
- %MEM:内存占用率。
- VSZ:虚拟内存占用大小,单位为KB。
- RSS:物理内存占用大小,单位为KB。
- TTY:进程登录的终端,问号?表示由系统内核直接启动。tty1-tty7是本地终端,tty1-tty6是本地字符终端,tty7是本地图形界面终端,pts/0到pts/255表示虚拟终端(可以理解为远程终端)。
- STAT:进程状态,这个状态有很多值,常见的有R(运行)、S(睡眠)、T(停止状态)、s(包含子进程)、+(位于后台)。
- START:启动时间。
- TIME:占用CPU的运算时间。
- COMMAND:产生此进程的命令(通常由此看出运行的是哪个进程)。
查看进程树:pstree [选项]
选项:
- -p:显示进程的PID。
- -u:显示进程的所属用户。
查看系统健康状态
top [选项]:查看系统健康状态。
选项:
- -d 秒数:指定top命令的结果的刷新间隔时间,默认为3秒。
top命令的交互模式下可以执行以下命令:
- ?或h:显示交互模式的帮助。
- P:以CPU使用率排序,也是默认项。
- M:以内存的使用率排序。
- N:以PID排序。
- q:退出top。
top命令开始几行的信息查看:
第一行(系统信息)
- 12:26:46:当前系统时间。
- up 1 day, 13:32:当前系统已经运行了多少时间,这里表示本机已经运行了1天13小时32分钟。
- 2 users:当前登录了多少个用户。
- load average: 0.00, 0.00, 0.00:系统在之前的1分钟、5分钟、15分钟的平均负载。一般认为小于1(根据CPU核数而定,4核就是4)则负载较小,反之超过了就是系统已经超出了负载(这个信息是查看系统健康状态的重要项)。
第二行(Tasks: 进程信息)
- 95 total:系统中的总进程数。
- 1 running:正在运行的进程数。
- 94 sleeping:睡眠的进程数。
- 0 stopped:正在停止的进程。
- 0 zombie:僵尸进程数(即一直在结束进程却没有结束成功的进程),如果不是0,则需要手工检查对应的僵尸进程。
第三行(Cpu(s): CPU信息)
- 0.1%us:用户模式占用的CPU百分比。
- 0.1%sy:系统模式占用的CPU百分比。
- 0.0%ni:改变过优先级的用户进程占用的CPU百分比。
- 99.7%id:空闲CPU的CPU占用百分比(这个信息是查看系统健康状态的重要项)。
- 0.1%wa:等待输入/输出的进程的CPU占用百分比。
- 0.0%hi:硬中断请求服务的CPU占用百分比。
- 0.1%si:软中断请求服务的CPU占用百分比。
- 0.0%st:st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间的百分比。
第四行(Mem: 物理内存信息)
- 625344K total:物理内存的总量,单位为KB。
- 571504k used:已经使用的物理内存数量(这个信息是查看系统健康状态的重要项)。
- 53840k free:空闲的物理内存数量。
- 65800k buffers:作为缓冲的内存数量。
第五行(Swap:交换分区swap信息)
- 524280k total:交换分区(虚拟内存)的总大小。
- 0k used:已经使用的交换分区的大小。
- 524280k free:空闲的交换分区的大小。
- 409280k cached:作为缓冲的交换分区的大小。
终止进程
kill PID:终止进程。平常不建议使用这个终止进程的命令,应该使用每个进程自己的终止命令,如stop等,只有正常情况下终止不了的时候才使用系统的终止进程命令。
kill -l:查看可使用的进程信号。
常用的进程信号(信号代号(信号名称)):
- 1(SIGHUP):立即关闭进程,然后重新读取配置文件之后重启进程。
- 2(SIGINT):终止前台进程,相当于Ctrl+C。
- 9(SIGKILL):立即结束程序,此信号不能被阻塞、处理和忽略,通常用于强制终止进程。
- 15(SIGTERM):正常结束进程的信号,也是kill命令的默认信号。如果程序不能正常结束,此时可以使用信号9强制结束进程。
- 示例:“kill -1 22354”表示重启PID为22354的进程。
killall [选项][信号] 进程名:终止进程(包括其子进程)。
选项:
- -i:交互式,会询问是否终止某个进程。
- -I:忽略进程名的大小写。
- 示例:常用的就是“killall -9 进程名”。
pkill [选项][信号] 进程名:按照进程名终止某个进程。
选项:
- -t 终端号:按照终端号踢出用户。
- pkill命令在实际使用中还是挺常用的,在同时有多个管理员管理系统的时候,高权限的管理员可以使用t参数踢掉低权限的管理员,以防止自己的工作被干扰。
- 示例:先使用w命令查看登录的用户,如tty1,然后使用pkill命令“pkill -9 -t tty1”强制踢出tty1这个终端。