0%

killall命令

一、常用用法

killall -s KILL -I -v command-name

二、含义与选项

2.1、含义

杀掉所有匹配的进程。具体是:

  1. 在进程中有个“命令+参数”属性,它表示该进程由执行该“命令+参数”获得,它对应于“ps”命令中的“args”指示符
  2. killall会尝试将“command-name”与进程“命令+参数”属性中的“简化后的命令部分内容”进行匹配,匹配的进程将被杀掉。“简化后的命令部分内容”是指:如果“命令”的内容中含有“/”字符,那么简化后的命令部分内容是最后一个“/”字符后的内容;否则,简化后的命令部分内容就是“命令”内容本身。

比如如果有个进程的命令内容为“/opt/google/chrome/chrome”,那么killall -s KILL -I -v chrome能够杀死该进程,killall -s KILL -I -v rome不能杀死该进程;有个进程的命令内容为“gnome-pty-helper”,那么killall -s KILL -I -v gnome-pty-helper能够杀死该进程,killall -s KILL -I -v helper不能杀死该进程。

2.2、选项表示的意思

“-s KILL”:killall命令默认发送“TERM”信号,这里指定发送“KILL”信号。killall命令采用的信号机制跟kill命令一致,可以参见kill命令的信号说明。
“-I”:匹配时忽略大小写。
“-v”:打印日志信息。

三、其他

在一个bash进程中,执行killall -s KILL -I -v bash命令,企图杀死所有bash进程,那么该bash进程也会被杀掉,这很有可能导致killall -s KILL -I -v bash命令执行到中途就被退出,不能完全达到目标。因而,如果想杀死bash进程,还是应该发送“TERM”信号。

您的支持将鼓励我继续分享!