杀掉多个进程的方法

警告:

批量杀死Linux系统中的进程是高危操作,所以务必仔细检查和灰度

找出某个用户的进程进行kill

ps 命令提供了输出字段过滤功能,例如需要找出 huatai 用户的进程:

ps -o pid= -u huatai

此时只会显示该用户的进程pid(无需awk),所以我们可以进一步使用 xargs 进行管道命令处理(kill)

ps o pid= -u huatai | xargs kill

这样系统中所有 huatai 用户的进程都会被杀死

killall命令

killall 命令提供了更为简单的杀死所有进程的方法,默认发送 SIGTERM 信号:

  • -I 忽略大小写

  • -i 交互模式,在杀死每个进程前进行确认

  • -o 只杀死比指定时间更早(older)的进程

  • -y 只杀死比指定时间更晚(younger)的进程

  • -r 使用规则选择进程

举例:

  • 杀死1周前的apache2进程,杀死前交互确认:

killall -io 1w apache2
  • 如果使用 SIGTERM 不能杀掉进程,则使用 kill -9 方式:

killall -9 -io 1w apache2

pgrep和pkill

pgrep 会列出所有匹配的进程pid,而 pkill 则杀死所有匹配的进程:

pgrep apache2

批量杀死

pkill apache2

参考

Last updated