常用 pkill 命令速查表
终止所有名为 nginx
的进程
pkill nginx
强制终止所有 nginx
进程
pkill -9 nginx
仅终止用户 tom
的 nginx
进程
pkill -u tom nginx
终止 pts/1
终端下的所有进程
pkill -t pts/1
终止命令行中含 python3 manage.py
的进程
pkill -f 'python3 manage.py'
终止最新创建的 firefox
进程
pkill -n firefox
终止最早创建的 firefox
进程
pkill -o firefox
交互式确认后再终止
pkill -i firefox
先查看将被杀死的进程列表(不执行)
pkill -v firefox
注意事项
精准匹配
使用 -x
参数确保进程名完全匹配,避免误杀同名进程。例如:pkill -x nginx
仅精确匹配 nginx
进程。
正则表达式支持
-f
参数允许对完整命令行进行正则匹配。例如:pkill -f 'fire.*'
可终止所有命令行包含 fire
开头的进程。
权限控制
普通用户只能终止自己拥有的进程,root
用户可终止系统所有进程。权限不足时,需使用 sudo
提权。
优雅终止流程
优先使用默认的 SIGTERM
(信号 15),给予进程清理资源的机会。若进程无响应,再使用 -9
(SIGKILL
)强制终止。
安全防护
执行前建议先用 pgrep
或 pkill -v
验证目标进程。例如:pgrep -l nginx
列出所有 nginx
进程及 PID。
与 killall
的区别
功能差异
killall
仅支持进程名称的简单匹配,不支持正则表达式或多条件过滤。而 pkill
提供更灵活的匹配方式(如用户、终端、命令行等)。
兼容性
某些 Linux 发行版(如 CentOS)默认未安装 killall
,需手动安装。pkill
通常属于 procps
或 procps-ng
包,预装在大多数系统中。
扩展性
pkill
支持通过 -P
指定父进程 PID,批量终止子进程。例如:pkill -P 1234
终止 PID 为 1234 的所有子进程。