pkill 默认子串匹配进程名并发送sigterm,需用-x精确匹配、-f匹配完整命令行、-u/-t限制用户或终端范围,操作前建议-pgrel预览,优先用sigterm再考虑-9强制终止。

直接用 pkill 进程名 就能批量杀掉所有匹配的同名进程,但默认行为容易误杀,关键是要理解它怎么匹配、怎么控制范围。
基础用法:按进程名快速终止
最简命令就是 pkill nginx 或 pkill python3。它会向所有进程名中包含该字符串的进程发送 SIGTERM(优雅退出信号)。
- 注意:不是精确匹配,而是子串匹配。比如
pkill ssh会同时干掉ssh、sshd、ssh-agent - 想只杀名字完全一致的?加
-x:例如pkill -x node不会影响node_exporter - 大小写敏感,默认不忽略;需要忽略时加
-i,如pkill -i chrome
精准匹配:用 -f 匹配完整命令行
很多进程启动时带参数或路径,仅靠进程名不够准。这时候必须用 -f,让 pkill 去查 /proc/[pid]/cmdline 中的整条命令。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 例如:
pkill -f "gunicorn.*8001"可杀所有监听 8001 端口的 gunicorn 实例 -
pkill -f "/usr/bin/python3 /var/app/worker.py"比单纯pkill python3安全得多 - 使用前建议先加
-l预览:pkill -lf "node server.js",确认列出的 PID 和命令是否真要杀
限制范围:按用户、终端或进程组过滤
避免误伤他人或系统进程,加条件限定目标群体。
- 只杀某个用户的:
pkill -u deploy nginx(支持用户名或 UID) - 只杀某终端上的:
pkill -t pts/2 python(适合清理某次 SSH 会话里的残留) - 组合使用更安全:
pkill -u www-data -t pts/0 -f "php-fpm" - 排除特定用户:
pkill -u !root node杀所有非 root 启动的 node 进程
安全操作:先试再杀,优先用 SIGTERM
别一上来就 -9。多数服务对 SIGTERM 有良好响应,能释放资源、保存状态。
- 先发默认信号:
pkill -f "myapp",等几秒后检查:pgrep -f "myapp" - 仍有残留再补强制杀:
pkill -9 -f "myapp" - 验证进程是否还在:
kill -0 PID(不发信号,只检测存活) - 脚本中可加
-c统计数量:pkill -cf "redis-server"返回匹配数,便于判断效果










