在 CentOS(以及所有 Linux 系统) 中,僵尸进程(Zombie Process)是可以被“回收”的,但方式比较特殊。
僵尸进程是 已经结束运行,但父进程还没有调用 wait() / waitpid() 回收其退出状态 的进程。
Z(zombie)✅ 能被回收,但只能由父进程回收
wait()wait(NULL);
init(PID 1)或 systemd 接管wait() 回收❌ kill -9 僵尸PID 无效
✅ 解决:
# 找到父进程
ps -o pid,ppid,stat,comm -p 僵尸PID
# 杀掉父进程(谨慎)
kill -9 父进程PID
父进程死后,僵尸由 systemd 回收
✅ 通常几秒内自动回收
❌ 若大量僵尸,可能是 bug 或服务异常
wait() 子进程systemd 管理子进程ps aux | grep ' Z '
top # 看 Tasks: zombie
✅ 僵尸进程可以被回收
❌ 不能直接 kill 僵尸本身
✅ 只能回收父进程或让父进程退出
如果你愿意,可以贴 ps 输出,我帮你判断具体原因。