命令格式
killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...
killall -l, --list
killall -V, --version
命令参数
-e, --exact
对于长名字,要求精确匹配。如果一个命令名的长度超过 15 字符,则可能不会用完整的名字。这种情况下,killall 会杀死名字匹配前 15 个字符的进程。使用 -e 选项,则会要求进程名字完全匹配。
-I, --ignore-case
匹配进程名时,忽略大小写。
-g, --process-group
杀死属于该进程组的进程。kill 信号给每个组只发送一次, 即使同一进程组中包含多个进程。
-i, --interactive
交互模式,在杀死进程之前提示用户确认。
-l, --list
打印信号的名称列表。
-q, --quiet
如果没有进程被杀死,也不会有任何提示。
-r, --regexp
使用扩展的正则表达式去接。
-s, --signal
指定发送的信号。
-u, --user
只会作用于指定用户的进程。
-v, --verbose
报告信号是否发送成功。
-V, --version
显示版本信息。
-w, --wait
等待所有要杀死的进程死去。killall 每秒会检查是否还有要杀死的进程仍然存活,只有当所有进程都被杀死后程序才会返回。注意:如果信号被忽略或是没有起效,亦或是进程停留在僵尸状态,那么 killall 可能永远等待。
实例
a) 杀死所有的 ping 程序实例。
[huey@huey-K42JE ~]$ ping example.com > /dev/null &
[1] 1281
[huey@huey-K42JE ~]$ ping 8.8.8.8 > /dev/null &
[2] 1287
[huey@huey-K42JE ~]$ jobs
[1]- Running ping example.com > /dev/null &
[2]+ Running ping 8.8.8.8 > /dev/null &
[huey@huey-K42JE ~]$ killall -v ping
Killed ping(1281) with signal 15
Killed ping(1287) with signal 15
[1]- Terminated ping example.com > /dev/null
[2]+ Terminated ping 8.8.8.8 > /dev/null