命令行手册

Man » killall 在线手册 - 详细的 killall man 页面在线文档

🌍
killall - 通过名称杀死进程

概要

killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interactive] [-n, --ns
PID] [-o, --older-than TIME] [-q, --quiet] [-r, --regexp] [-s, --signal SIGNAL, -SIGNAL]
[-u, --user user] [-v, --verbose] [-w, --wait] [-y, --younger-than TIME] [-I, --ignore-case]
[-V, --version] [--] name ...
killall -l, --list
killall -V, --version

描述

killall 向正在运行任何指定命令的所有进程发送一个信号。 如果未指定信号名称,则发送 SIGTERM 信号。

信号可以通过名称(例如 -HUP 或 -SIGHUP)、数字(例如 -1)或选项 -s 来指定。

如果命令名称不是正则表达式(选项 -r)并且包含斜杠 (/),则将选择执行该特定文件的进程以进行终止,而与其名称无关。

killall 在至少为每个列出的命令杀死了一个进程时返回零返回码,或者没有列出命令并且至少有一个进程匹配 -u 和 -Z 搜索标准时返回零。
否则,killall 返回非零值。

killall 进程绝不会杀死自身(但可能会杀死其他 killall 进程)。

选项

-e, --exact

要求进行完全匹配,对于非常长的名称。 如果命令名称长于 15 个字符,则完整名称可能不可用(即,它已换出)。 在这种情况下,killall 将杀死与前 15 个字符匹配的所有内容。 使用 -e,跳过这些条目。 如果同时指定了 -e 和 -v,则 killall 会为每个跳过的条目打印一条消息。

-I, --ignore-case

执行区分大小写的进程名称匹配。

-g, --process-group

杀死进程所属的进程组。 即使找到多个属于同一进程组的进程,也只会发送一次 kill 信号。

-i, --interactive

在杀死进程之前,交互式地询问确认。

-l, --list

列出所有已知的信号名称。

-n, --ns

匹配给定 PID 的 PID 命名空间。 默认情况下,匹配所有命名空间。

-o, --older-than

仅匹配在指定时间之前启动的进程。 时间指定为浮点数,然后是单位。 单位为 s、m、h、d、w、M、y,分别表示秒、分钟、小时、天、周、月和年。

-q, --quiet

如果未杀死任何进程,则不显示消息。

-r, --regexp

将进程名称模式解释为 POSIX 扩展正则表达式,请参阅 regex(3)。

-s, --signal, -SIGNAL

发送此信号而不是 SIGTERM。

-u, --user

仅杀死指定用户拥有的进程。 可以选择性地指定命令名称。


-v, --verbose
报告信号是否已成功发送。

-V, --version
显示版本信息。

-w, --wait
等待所有被杀死的进程消失。 killall 每秒检查一次,查看是否有任何被杀死的进程仍然存在,并且只有在没有进程存在时才会返回。请注意,如果信号被忽略、没有效果,或者进程保持在僵尸状态,killall 可能会永远等待。

-y, --younger-than
仅匹配比指定时间更年轻(启动于之后)的进程。时间以浮点数和单位指定。单位为 s、m、h、d、w、M、y,分别表示秒、分钟、小时、天、周、月和年。

-Z, --context
指定安全上下文:仅杀死具有与给定扩展正则表达式模式匹配的安全上下文的进程。必须在命令行中的其他参数之前。命令名称是可选的。

文件

/proc  proc 文件系统的位置

已知问题

通过文件进行杀仅适用于在执行期间保持打开状态的可执行文件,即不能通过这种方式杀死非纯可执行文件。

请注意,在非 Linux 系统上,尤其是在以特权用户身份执行时,键入 killall name 可能不会产生预期的效果。

killall -w 无法检测进程是否消失,并且在扫描之间被具有相同 PID 的新进程替换。

如果进程更改了其名称,killall 可能无法正确匹配它们。

killall 对可以在命令行中指定的名称数量有限制。该数字是不带符号的 long 整数乘以 8。对于大多数 32 位系统,限制为 32,对于 64 位系统,限制通常为 64。

参见

kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3).