在 CentOS(以及其它 Linux 发行版)中,僵尸进程(Zombie Process,状态为 Z)本质上是已经结束运行、但父进程还没有调用 wait()/waitpid() 回收其退出状态的进程。它本身不占用 CPU、不占用内存(除了极少数内核中的 task_struct 信息),但会带来一些潜在问题和后果:
fork(): Resource temporarily unavailableps、top 等工具的性能僵尸进程通常是父进程问题,例如:
wait()这说明程序本身可能不稳定。
✅ 不会占用 CPU
✅ 不会占用内存(用户态)
✅ 不会直接导致系统崩溃(少量时)
fork 但不回收& 后台执行子进程kill -9kill -9 <zombie_pid> # 无效
僵尸进程已经死了,杀不了。
ps -o ppid= -p <zombie_pid>
kill -9 <父进程PID>
init / systemd(PID 1)接管并回收SIGCHLDwaitpid(-1, ..., WNOHANG)少量僵尸进程无害,大量僵尸进程会耗尽 PID、影响系统稳定性,本质问题几乎都在父进程。
如果你愿意,可以贴一下 ps aux | grep Z 或父进程信息,我可以帮你具体分析。