简短回答:僵尸进程(Zombie)本身不能被直接“杀掉”,但可以通过杀掉它的父进程或让父进程回收它来消除。
在 Linux / CentOS 中:
wait() / waitpid() 来回收所以:
kill -9 <zombie_pid>
对僵尸进程无效,因为它已经死了。
SIGCHLD 或调用 wait()查看僵尸进程的父进程:
ps -l
# 或
ps -eo pid,ppid,stat,cmd | grep Z
如果父进程不回收僵尸:
kill -9 <父进程PID>
之后僵尸进程会被 init(PID 1) 接管并自动回收。
⚠ 注意:
如果僵尸太多且父进程不能杀:
ps -eo pid,stat,cmd | grep Z
状态为 Z 就是僵尸。
如果你愿意,可以贴一下:
ps -ef | grep Z
我可以帮你分析具体原因和处理方式。