通过名称结束进程
命令语法格式
killall [options] [–] name …
killall -l
killall -V, –version
命令描述
命令killall向运行任何指定命令的所有进程发送信号。 如果未指定信号名称,则发送SIGTERM信号。
信号可以通过名称(例如-HUP或-SIGHUP)、数字(例如-1)、选项-s这三种方式来指定。
如果命令名称name不是正则表达式(选项-r)并且包含斜杠(/),则将选择执行该特定命令文件的进程进行终止,而与其名称无关。
一个killall进程永远不会自杀(但可能会杀死其他killall进程)。
命令支持的选项及含义
-s, –signal SIGNAL, -SIGNAL
发送指定的信号,而不是默认的SIGTERM信号。
-w, –wait
等待所有被杀死的进程死亡。 如果任何被杀死的进程仍然存在,则killall每秒检查一次;如果没有剩余进程,则仅返回。 请注意,如果信号被忽略,没有效果,或者进程处于僵尸状态,killall可能会永远等待。
-Z, –context pattern
(仅限SELinux)指定安全上下文:仅终止具有与给定扩展正则表达式模式匹配的安全上下文的进程。 必须在命令行上的其他参数之前。 命令名称是可选的。
-i, –interactive
在结束进程之前,要求用户确认。
选择要结束的进程
-e, –exact
需要与很长的名字name完全匹配。
如果命令名称超过15个字符,则全名可能不可用(即,它被换出)。在这种情况下,killall会杀死前15个字符内匹配的所有内容。使用-e时,将跳过此类条目。 如果除了-e之外还指定了-v选项,killall会为每个跳过的条目打印一条消息,
-r, –regexp
根据regexp(3)将进程名称模式解释为POSIX扩展正则表达式(ERE)。
-I, –ignore-case
不区分大小写的进程名称匹配。
-y, –younger-than TIME
仅匹配指定时间之后(从之后开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-o, –older-than TIME
仅匹配指定时间之前(从之前开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-u, –user user
只结束指定的用户拥有的进程。 命令名称是可选的。
-g, –process-group
终止进程所属的进程组里的全部进程。即使找到属于同一进程组的多个进程,kill信号也只发送一次。
-n, –ns PID
匹配给定PID的PID命名空间。 使用0来匹配所有名称空间。 默认值是与当前PID命名空间匹配。
调试信息输出
-v, –verbose
报告信号是否成功发送。
-q, –quiet
如果没有进程被杀死,不要产生信息。
其他选项
-V, –version
显示版本信息并退出。
-l, –list
列出所有已知的信号名称。
注意事项
结束文件仅适用于在执行期间保持打开的可执行文件,即不能以这种方式杀死不纯的可执行文件。
请注意,键入killall名称可能不会对非Linux系统产生预期效果,尤其是在特权用户完成时。
命令killall -w不会检测进程是否消失并被扫描之间具有相同PID的新进程替换。
如果进程更改了其名称,则killall可能无法正确匹配它们。
killall具有可在命令行上指定的名称限制。 此数字是无符号长整数乘以8的大小。对于大多数32位系统,限制为32,对于64位系统,限制通常为64。
相关文件
/proc
进程文件系统的位置。
退出状态
0 如果为每个列出的命令至少杀死了一个进程,或者没有列出任何命令且至少有一个进程与-u和-Z搜索条件匹配
>0 其他情况。
相关手册
kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3)
参考文献
- man 1 killall, Version 23.1-1+b1
更新日志
- 06/17/2017 创建文章
- 09/26/2018 修改文章内容