在 Ubuntu(以及其它 Linux 系统)上,僵尸进程(zombie / defunct 进程)本身基本不占用常规系统资源,但有一些细节和潜在风险需要注意。
僵尸进程是已经结束运行、但父进程还没回收它(wait)的进程。
它不占用:
它仍然占用一点点东西:
也就是说:
僵尸进程 ≈ “尸体”,CPU 和内存都不干活也不吃资源,只是“占了个名额”
虽然单个僵尸进程无害,但:
fork: resource temporarily unavailable)常见于:
ps aux | grep Z
或
top
# 看 Tasks: xx total, x zombie
不能直接 kill 僵尸进程(已经死了)
正确做法:
ps -o ppid= -p <僵尸PID>
kill -TERM <父PID>
或
systemctl restart <服务>
如果父进程是 init(PID 1),一般会自动回收。
僵尸进程不占 CPU、不占内存,但占 PID;少量无害,大量会出事。
如果你愿意,可以把 ps 输出贴出来,我可以帮你判断是不是真有问题。