killall

按命令的名字终止进程


语法格式

killall [-Z ctxpat] [-egiIqrvw] [-s signal] [-u user] [--] cmds
killall -l
killall [-V|--version]

命令简介

利用killall命令,可以向匹配指定命令名的所有进程发送信号。如果未指定信号(参见“-s”选项),发送的默认信号是SIGTERM。

其中,cmds可以是一个或多个命令的名字,也可以是扩展的正则表达式。

如果指定的命令名并非正则表达式(参见“-r”选项),不管进程名是否包含目录部分,只要指定的命令名匹配进程的文件名部分,则终止相应的进程。

只要终止了至少一个进程,不管是匹配命令行指定的进程,还是匹配“-u”或“-Z”选项指定的进程,killall返回结束状态0,否则返回非0。

注意,killall命令不会终止自身,但可以终止其他killall进程。

命令选项

-e, --exact  即使命令的名字较长,仍要求严格匹配。如果命令名的长度超过15个字符,也许无法获取完整的命令名,在此情况下,killall通常会终止匹配前15个字符的任何进程。如果指定了“-e”选项,将会忽略这样的进程。如果同时指定了“-v”选项,killall将会输出一条信息,说明忽略的每一个进程。

-g, --process-group  终止进程所属的进程组。对于每个进程组,killall仅发送一次终止信号,即使进程组中存在多个进程。

-i, --interactive  在终止进程之前需要提请用户确认。

-I, --ignore-case  匹配进程名时无须区别大小写字母的不同。

-l, --list  显示killall命令支持的信号列表。

-q, --quiet  即使未终止进程,也禁止输出任何信息。

-r, --regexp  按照扩展的正则表达式解释进程名模式。

-s signal, --signal=signal, -signal  发送指定的信号(而非默认的SIGTERM信号)。信号参数signal既可以是信号名,包括规范的信号名(如SIGKILL)和缩写的信号名(如KILL),也可以是信号代码(如9)。注意,“-s signal”可以简化成“-signal”。

-u user, --user user  仅仅终止属于指定用户的进程。指定这个选项时,命令名参数是选用的。

-v, --verbose  显示信号是否已成功地发送。

-w, --wait  等待需要终止的所有进程完全停止运行。killall每秒检测一次,确定需要终止的进程是否已经完全退出。仅当需要终止的进程均已彻底结束时才返回。注意,如果进程屏蔽了信号或处于僵尸状态,killall命令也许会无限期等待。

-Z ctxpat --context=ctxpat  指定SELinux安全属性模式。仅终止其SELinux安全属性匹配指定的扩展正则表达式的进程。指定这个选项时,命令名参数是选用的。注意,这个选项必须优先于命令行中的其他选项与参数。

应用实例

1. 向crond守护进程发送SIGHUP信号,令其重新加载crontab文件,使修改后的crontab文件立即生效。

# killall -s SIGHUP crond
#

2. 终止指定用户的任何进程。

# killall –u hwang
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z