「killall(1)」-

通过名称结束进程

命令语法格式

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 修改文章内容