Linux笔记:进程管理

编程

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这个终端。

 

以上是 Linux笔记:进程管理 的全部内容, 来源链接: utcz.com/z/515637.html

回到顶部