在 Ubuntu(以及一般的 Linux 系统) 中,僵尸进程(Zombie Process) 是指已经结束运行,但其进程表项(PCB)尚未被父进程回收的进程。
下面从状态、原理、查看方式和处理方法几个方面说明。
在 ps 或 top 中,僵尸进程的状态通常显示为:
Z
或者完整显示:
Z+ (表示僵尸进程且在前台进程组)
在 ps 的 STAT 列中含义:
exit() 结束wait() / waitpid()僵尸进程 不占用 CPU、内存,只占用一个 PID 和进程表项。
psps aux | grep Z
或查看状态列:
ps -eo pid,ppid,stat,cmd | grep Z
toptop
在任务统计中可以看到:
Tasks: 210 total, 1 zombie
wait(NULL);
或signal(SIGCHLD, SIG_IGN);
kill -9 父进程PID
init / systemd 接管并回收kill -9 僵尸进程
Ubuntu 中的僵尸进程状态是
Z,表示进程已退出但未被父进程回收,只占 PID 不占资源。
如果你愿意,我也可以:
ps 输出