首页/系统/Linux 运维命令速查/场景:僵尸进程清理
进程与作业69 条

场景:僵尸进程清理

ps 里一堆 Z 状态:它们已死只等父进程回收;正确做法是处理父进程(wait 逻辑/重启父进程),而不是对僵尸本身动手。

Linux 运维命令速查系统更新于 2026-10-12
场景僵尸进程累积
组合ps stat + 父进程定位 + 重启父进程

定位

定位
ps -eo stat,pid,ppid,cmd | awk '$1 ~ /^Z/' | head
ps -eo stat,pid,ppid,cmd | awk '$1 ~ /^Z/{print $3}' | sort | uniq -c | sort -rn   # 谁制造了僵尸

处理

处理
ps -o pid,stat,cmd -p <父PID>       # 父进程在吗?
# 父进程健在但不回收 → 修复代码/升级版本;应急可重启父进程
# 父进程是自己写错脚本(没 wait)→ 补 wait 后重跑
僵尸只占进程表项、几乎不占内存:少量短命僵尸无害,大量累积才代表父进程有 bug。

易错点

  • kill 僵尸本身永远无效(无地址空间可杀):只会报 No such process
  • 重启父进程会带走它的全部子进程:确认父进程职责再操作

数据来源与参考

  • man 1 ps(procps-ng 手册)
  • man 2 wait

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌