pkill
是一个 Linux/Unix 命令,用于根据进程名或其他属性杀死(终止)指定的进程。它是 pgrep
和 kill
命令的结合,可以方便地通过名称匹配来结束进程。
基本语法
pkill [选项] 进程名或匹配模式
常用选项
选项 | 说明 |
---|---|
-signal | 指定发送的信号(默认 SIGTERM ,即 15 ) |
-9 或 -KILL | 强制杀死进程(相当于 kill -9 ) |
-15 或 -TERM | 正常终止进程(默认) |
-f | 匹配完整的命令行(而不仅是进程名) |
-u 用户名 | 仅杀死指定用户的进程 |
-x | 精确匹配进程名(避免部分匹配) |
-n | 只杀死最新(最近启动)的进程 |
-o | 只杀死最旧(最早启动)的进程 |
示例用法
-
杀死指定名称的进程
pkill nginx # 结束所有名为 "nginx" 的进程
-
强制杀死进程(
SIGKILL
)pkill -9 firefox # 强制结束所有 Firefox 进程
-
匹配完整的命令行(
-f
)pkill -f "python3 my_script.py" # 杀死包含完整命令的进程
-
杀死特定用户的进程
pkill -u root sshd # 杀死 root 用户的所有 sshd 进程
-
精确匹配进程名(
-x
)pkill -x "bash" # 仅杀死严格匹配 "bash" 的进程(不会匹配 "bashrc" 等)
-
发送自定义信号
pkill -HUP nginx # 向 nginx 发送 SIGHUP 信号(常用于重载配置)
注意事项
pkill
会匹配所有符合条件的进程,使用前建议先用pgrep
查看匹配的进程:pgrep -l nginx # 查看所有匹配 "nginx" 的进程
- 如果进程无法正常终止,可以尝试
-9
(强制杀死),但可能导致数据丢失。 - 谨慎使用
-f
选项,避免误杀其他进程。
与 kill
的区别
kill
需要 PID(进程 ID)来结束进程,例如:kill 1234 # 结束 PID=1234 的进程
pkill
直接通过 进程名 或 模式匹配 来结束进程,更加方便。
links
https://www.linuxcool.com/pkill