温馨提示×

centos如何查看僵尸进程数

小樊
37
2026-10-03 08:14:33
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,可以通过多种方式查看**僵尸进程(zombie processes)**的数量。


一、使用 ps 命令查看僵尸进程数

1. 查看所有僵尸进程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

或:

ps aux | awk '$8 ~ /Z/'

2. 统计僵尸进程数量

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 僵尸进程
  • 解决方法是:
    • 重启或修复父进程
    • 或 kill -9 父进程 PID

如果你愿意,我也可以帮你定位僵尸进程的父进程或分析为什么会产生僵尸进程。

0 踩