killall
是 Unix 和 Linux 系统中的一个命令行工具,它用于根据进程名称向所有匹配的进程发送信号。与 kill
命令不同的是,killall
可以一次性终止所有具有相同名称的进程,而不需要单独指定每个进程的 PID。这对于管理同一服务的多个实例或者清理不再需要的进程非常有用。理解 killall
的工作原理及其选项可以帮助系统管理员更高效地管理和维护系统。
功能与作用
- 批量发送信号:
killall
的主要功能是根据进程名称向所有匹配的进程发送信号。 - 终止进程:最常见的是用来终止具有相同名称的所有进程。
- 灵活控制:通过发送不同的信号,可以实现对这些进程的不同管理操作,如暂停、继续、重启等。
- 轻量级工具:
killall
是一个非常轻量级的命令,执行效率高,资源占用少。
基本语法
killall [选项] [信号或选项] 进程名...
- 选项:可选参数,用来调整
killall
的行为。 - 信号或选项:指定要发送给进程的信号类型。如果没有指定,默认发送
SIGTERM
(15),这是终止进程的标准信号。 - 进程名…:目标进程的名称。
常用选项
-i, --interactive
:在杀掉进程前要求确认。-v, --verbose
:显示详细信息,表明每个步骤的状态。-w, --wait
:等待所有被杀掉的进程确实已经结束了,才返回。-q, --quiet, --silent
:静默模式,不输出任何信息。-s, --signal <信号>
:指定要发送的信号,默认为 SIGTERM (15)。-u, --user <用户名>
:仅杀掉属于特定用户的进程。-Z, --context <安全上下文>
:仅杀掉具有指定安全标签的进程(适用于 SELinux 系统)。-g, --process-group
:向整个进程组发送信号,而不是单个进程。-r, --regexp <正则表达式>
:使用正则表达式匹配进程名。