一、常用用法
1 | killall -s KILL -I -v command-name |
二、含义与选项
2.1、含义
杀掉所有匹配的进程。具体是:
- 在进程中有个“命令+参数”属性,它表示该进程由执行该“命令+参数”获得,它对应于“ps”命令中的“args”指示符
- 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”信号。