> 进程管理 > killall

killall: 按名称终止进程

killall 命令向所有指定名称的正在运行的进程发送信号。这在一次性终止特定应用程序或服务的多个实例时非常有用。默认情况下,它会发送 SIGTERM 信号,但您也可以指定其他信号。

概述

killall 是一个强大的工具,它允许您通过进程名称而不是进程 ID (PID) 来一次性终止多个进程。由于它针对的是同名进程的所有实例,因此在终止特定应用程序的所有窗口或后台服务时特别方便。

主要特点

  • 基于进程名称的终止
  • 支持发送各种信号(默认为 SIGTERM)
  • 可按用户、时间等多种条件过滤
  • 一次性处理多个实例

主要选项

killall 命令提供了多种选项,可以精细控制进程的终止方式和目标。

默认行为和信号

进程过滤

生成的命令:

请尝试组合命令。

描述:

`killall` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

killall 命令的各种使用示例。

终止所有指定名称的进程

killall firefox

终止 Firefox 浏览器的所有实例。发送默认信号 SIGTERM(正常终止请求)。

使用特定信号强制终止

killall -s SIGKILL chrome

使用 SIGKILL(强制终止)信号终止 Chrome 浏览器的所有实例。此信号不会给进程清理操作的机会,因此应谨慎使用。

交互模式终止

killall -i sshd

在终止 sshd(SSH 守护进程)进程的每个实例之前,会提示用户进行确认。输入 'y' 将会终止。

终止特定用户的进程

killall -u user1

终止用户 'user1' 运行的所有进程。

等待进程终止

killall -w myapp

命令将等待当前运行的 'myapp' 进程完全终止。

安装

killall 命令作为 'psmisc' 包的一部分,在大多数 Linux 发行版中都已默认安装。如果您的系统上未安装,可以使用以下命令进行安装。

Debian/Ubuntu

sudo apt update && sudo apt install psmisc

使用 APT 包管理器安装 psmisc 包。

CentOS/RHEL/Fedora

sudo yum install psmisc
# 或
sudo dnf install psmisc

使用 YUM 或 DNF 包管理器安装 psmisc 包。

提示与注意事项

使用 killall 命令时的一些有用提示和需要注意的事项。

使用 SIGKILL (-9) 的注意事项

SIGKILL(信号编号 9)会强制进程立即终止,不会给进程清理打开文件或数据的时间。这可能导致数据丢失或系统不稳定,因此应优先尝试其他信号(例如 SIGTERM),仅在失败时才作为最后手段使用。

  • **优先使用 SIGTERM(默认值)**:大多数应用程序在收到 SIGTERM 后会正常终止。
  • **最后手段使用 SIGKILL**:仅在进程无响应时使用。

确认准确的进程名称

killall 使用准确的进程名称。建议使用 `ps aux | grep <进程名称>` 命令来确认您要终止的进程的准确名称。

  • 示例:`ps aux | grep firefox`

killall 与 pkill 的区别

`killall` 基于精确的进程名称进行匹配,而 `pkill` 可以使用正则表达式来匹配进程名称,从而实现更灵活的搜索和终止。

  • `killall`:精确名称匹配(例如:`killall firefox`)
  • `pkill`:正则表达式匹配(例如:`pkill -f 'firef[o]x'`)
  • `pkill` 扩展了 `kill` 命令的功能,无需直接指定 PID。

终止系统进程的注意事项

使用 `killall` 终止系统的关键进程可能导致系统不稳定或崩溃。尤其是在以 `root` 权限运行时,更应格外小心。

  • 例如:切勿执行 `killall systemd`、`killall init` 等命令。

相同类别命令