在 CentOS(以及其他 Linux 发行版)中,可以通过多种方式查看**僵尸进程(zombie processes)**的数量。
ps 命令查看僵尸进程数ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
或:
ps aux | awk '$8 ~ /Z/'
ps -A -ostat | grep -e 'Z' | wc -l
或:
ps aux | awk '$8 ~ /Z/' | wc -l
输出数字即为当前僵尸进程数。
top 命令查看在终端执行:
top
在顶部信息中可以看到类似:
Tasks: 210 total, 1 running, 208 sleeping, 0 stopped, 1 zombie
其中 zombie 就是僵尸进程数。
/proc 查看(更底层)for p in /proc/[0-9]*; do
if [ "$(cat $p/stat 2>/dev/null | awk '{print $3}')" = "Z" ]; then
echo $p
fi
done | wc -l
pstree 查看(可选)pstree -p -s <pid>
僵尸进程通常显示为 <defunct>。
Z(zombie)wait()kill -9 父进程 PID如果你愿意,我也可以帮你定位僵尸进程的父进程或分析为什么会产生僵尸进程。