Linux进程管理

本文围绕Linux进程管理展开,介绍了进程概念及管理作用。详细讲解查看进程的ps和pstree命令、判断服务器健康状态的top命令、杀死进程的kill等命令,还说明了修改进程优先级的nice和renice命令,以及相关参数和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程管理

进程是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。大部分进程是服务产生的,还有一些进程是系统内核产生的。

进程管理有三个如下作用,其中判断服务器健康状态比较重要,其次是查看进程,最后杀死进程用的比较多。

  • 判断服务器健康状态
  • 查看系统中所有进程
  • 杀死进程

查看进程

linux系统提供ps命令和pstree命令,用于查看系统进程。ps命令输出系统中进程的多个维度信息,pstree命令输出系统中进程的继承关系。

  • ps aux

    查看系统中所有进程,使用BSD操作系统格式。特别地,该命令参数没有短杠。

  • ps -le

    查看系统中所有进程,使用linux标准命令格式。

  • 选项

    • -a:显示终端的所有进程
    • -u:显示进程的归属用户及内存使用情况
    • -x:显示没有控制终端的进程
    • -l:显示详细信息
    • -e:显示所有信息,跟-A作用一致
  • 输出结果(以aux为例)

    • USER: 该进程由哪个用户产生的
    • PID:进程的ID号
    • %CPU:该进程占CPU资源的百分比。占用越高,进程越耗费资源;
    • %MEM:该进程占物理内存的百分比。占用越高,进程越消耗资源;
    • VSZ:该进程占虚拟内存大小。单位KB
    • RSS:该进程占物理内存大小。单位KB
    • TTY:该进程在哪个终端中运行。tty1-tty7表示本地控制台,其中tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
    • STAT:进程状态。常见的有:1、R:运行;2、S:休眠(绝大数进程都处于休眠状态)。3、T:停止状态。4、s:包含子进程。5、+:位于后台
    • START:该进程的启动时间,注意不要和TIME连在一起解读。
    • TIME:该进程占用CPU的运算时间,注意不是系统时间。
    • COMMAND:产生此进程的命令名。

查看健康状态

查看系统健康状态实质上是统计linux的内存、CPU等计算资源的使用情况,通过使用top命令输出当前系统的资源利用情况。

top命令该命令从上往下输出三部分内容,第一部分包括五行统计数据,第二部分为用于输出用户交互命令的命令行,第三部分为部分类似ps输出结果的可排序数据。

  • 选项

    • -d:指定top命令更新频率,默认3秒。该命令较消耗资源,不建议频率过高。
    • -b:使用批处理模式输出。一般和“-n”合用。批处理的作用在于允许使用输出重定向,top命令的输出内容写入到一个文本里。“top -b -n 1 > top.log”
    • -n:指定top命令执行次数。一般和“-b”合用。
  • 输出第一部分,平均负载、CPU空闲占比、内存空闲大小、交换区空闲区大小这四个信息影响系统的稳定运行。

    • 第一行:系统信息,包括当前系统时间、系统运行时间、登录用户数量、系统在1分钟、5分钟、15分钟的平均负载
    • 第二行:进程(Task)信息,包括当前系统的总进程数、正在运行的进程数、休眠的进程数、正在停止的进程数、僵尸进程数。其中,僵尸进程有时需要手动结束。
    • 第三行:CPU状态,包括系统模式百分比、**系统空闲百分比(%id)**等8个维度的百分比。其中,系统空闲百分比一般不能低于20%,否则系统卡顿。
    • 第四行:内存(Mem)状态,包括总大小、已使用、空闲、缓冲区(buffers)大小。其中,缓冲区加速数据的写入,辅助内存向磁盘写数据
    • 第五行:交互区(swap)状态,包括总大小、已使用、空闲、缓存区(cache)大小。其中,缓存区加速数据的读取,辅助Cpu从内存读数据
  • 输出第二部分,用户可输入交互命令,这些命令可控制第三部分的排序方式。

    • ?/h:显示交互模式的帮助
    • P:以CPU使用率排序,默认排序方式。
    • M:Y以内存使用率排序。
    • N:以PID排序
    • q:退出top.也可使用ctrl + c
  • 输出第三部分,内容结构类似ps命令输出结果。内容数量为部分值。

杀死进程

在系统管理中,杀死进程是最后的解决办法。杀死进程的命令包括kill 、killall、pkill.

  • kill [信号] PID
    • 结束单一进程。该命令只能使用PID
    • 信号 信号可用英文 ,也可用数字。默认是15,表示正常结束进程。其他常用的如下:
      • -9 :强制结束
      • -1:平滑重启进程
  • killall [选项] [信号] 进程名
    • 按照进程名结束进程。
    • 选项
      • -i: 交互式,询问是否要杀死某个进程,有几个同名进程就询问几次。
      • -I:忽略进程名大小写
    • 信号 含义同kill的信号一样
  • pkill [信号] [选项] 进程名
    • 按照进程名终止进程
    • 选项
      • -t:按照终端号踢出用户。
      • 踢出用户的一般步骤:1、使用w命令查看当前登录用户,获取用户的终端号TTY。 2、使用pkill -t -9 pts/o 即可踢出用户。

修改进程优先级

在修改进程优先级时,首选需要获取进程的信息。使用“ps aux”命令输出的结果中不包含进程的优先级信息,需要使用"ps -le"。“ps -le”输出结果的PRI、NI两列表示进程的优先级。其中,PRI表示OS动态调整的进程优先级,用户不能调整。NI是用户可以调整的优先级。

  • nice [选项] 命令
    • 该命令只能调整**新执行命令(不存在的进程)**的NI值。
    • 由于命令的运行是以进程的形式存在,因此nice命令的的后面跟的是命令。
    • 选项
      • -n :NI值,给命令赋予的NI值。例如“ nice -n -5 service httpd start”
  • renice [优先级] PID
    • 该命令修改的是已经存在的进程的NI值
    • 例如:renice -10 2323

修改优先级注意事项:

  • NI的取值范围是-20 ~ 19
  • 普通用户只能调整自己的进程,且只能调高不能调低。调整范围是 0 ~19。
  • root用户可以调整任何用户的进程,且范围为NI的取值范围。
  • PRI(new) = PRI(old) + NI。这个公式说明用户调整的优先级会影响进程的优先级。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值