在 Ubuntu(以及其它 Linux 系统)里,僵尸进程本身不一定算“故障”,要看具体情况。
僵尸进程(zombie / defunct)是:
wait() / waitpid() 来回收它的退出状态此时进程在进程表里还留一个条目,不占 CPU、不占内存,只占用一个 PID 和进程表项。
init / systemd 接管并回收如果出现以下情况,通常说明有问题:
fork: resource temporarily unavailable)常见原因:
这种属于故障或 bug。
查看僵尸进程:
ps aux | grep Z
或
top
# 看 Tasks: 里的 zombie 数
解决方式:
ps -o ppid= -p <僵尸PID>kill -9 僵尸进程(没用)| 情况 | 是否算故障 |
|---|---|
| 偶尔少量僵尸 | 否 |
| 长期存在 | 是(父进程问题) |
| 大量增长 | 是(严重) |
如果你愿意,可以贴一下 ps aux 或 top 的输出,我可以帮你判断是不是故障。