在 Debian(以及其它 Linux 发行版)中,查看**僵尸进程(Zombie / defunct 进程)**通常有以下几种常用方法:
ps 命令查看僵尸进程ps aux | awk '$8 ~ /Z/'
或:
ps -ef | awk '$8 == "Z"'
说明:
Z 表示进程状态为 zombiedefunctps -eo pid,ppid,stat,cmd | grep Z
示例输出:
1234 1000 Z [test] <defunct>
top 或 htoptop
在顶部可以看到:
Tasks: 210 total, 1 zombie
sudo apt install htop
htop
僵尸进程通常显示为灰色或标记为 Z
/proc 查看(进阶)for p in /proc/[0-9]*; do
if [ "$(cat $p/stat 2>/dev/null | awk '{print $3}')" = "Z" ]; then
echo "$p is zombie"
fi
done
ps aux | awk '$8 ~ /Z/' | wc -l
⚠️ 僵尸进程不能直接 kill
僵尸进程已经:
ps -o ppid= -p <僵尸PID>
kill -9 <父进程PID>
wait()wait / waitpid)如果你愿意,可以贴出 ps 或 top 的输出,我可以帮你分析具体是哪一个进程导致的僵尸。