Linux 批量结束进程
Tip
清理服务器残留进程时,手动逐个 kill 效率太低。本文汇总了 Linux 下批量终止进程的高效命令与管道技巧。

核心方法:管道组合
最灵活的批量终止方式,通过管道将进程过滤结果直接传递给 kill。
ps -ef | grep cve-2016-0728 | grep -v grep | awk '{print $2}' | xargs kill -9Warning
-9 表示强制终止(SIGKILL),进程无法捕获该信号。滥用可能导致数据损坏或产生僵尸进程,非必要请勿使用。
关键参数拆解:
| 命令片段 | 作用说明 |
|---|---|
grep -v grep | 排除当前 grep 进程自身的 PID,避免误杀 |
awk '{print $2}' | 提取每行的第二列(即进程号 PID) |
xargs kill -9 | 将获取到的 PID 列表作为参数传递给 kill |
Note
awk '{print $2}' 中的 $2 取决于 ps 的输出格式。若换用 ps aux,进程号通常位于 $2 或 $3,请根据实际情况调整列索引。

替代方案:killall 与 pkill
直接通过进程名称批量终止所有匹配进程,语法更简洁:
killall -9 cve-2016-0728Tip
pkill 支持更细粒度的匹配(如指定用户、终端),适合复杂环境:pkill -u username process_name。
常用进程管理命令速查
| 命令 | 用途 |
|---|---|
ps | 报告当前进程的快照 |
kill | 向指定 PID 发送终止信号 |
killall | 按名称终止所有同名进程 |
pkill | 按名称及其他属性(如用户、终端)发送信号 |
skill | 发送信号或报告进程状态 |
xkill | 按 X 窗口资源终止图形界面客户端 |
Tip
日常运维中,kill -15(SIGTERM)是更安全的默认选择,它允许进程清理资源后再退出。仅当进程无响应时才考虑 -9。
常见误区:grep vs pgrep
两者常被混淆,但用途完全不同:
pgrep:专为进程查询设计,返回匹配名称的 PID。常用于脚本中判断服务是否运行。pgrep -f cve-2016-0728grep:通用文本搜索工具,基于正则表达式匹配行内容。用于进程列表时只是字符串匹配,不具备进程管理语义。
简言之:查进程状态用 pgrep,搜日志文本用 grep。