温馨提示×

centos怎么查僵尸进程

小樊
42
2026-09-15 10:49:09
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,查看**僵尸进程(Zombie / Z 状态进程)**常用下面几种方法:


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

1️⃣ 查看所有僵尸进程

ps -ef | grep defunct

ps aux | grep Z

2️⃣ 只看进程状态为 Z 的进程(推荐)

ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/'

字段说明:

  • PID:僵尸进程 ID
  • PPID:父进程 ID(关键)
  • STAT Z:僵尸状态

二、使用 top 查看僵尸进程数量

top

在顶部可以看到类似:

Tasks: 210 total,   1 zombie

f → 找 S(进程状态),确保显示 Z


三、使用 htop(更直观,需安装)

yum install -y htop
htop

僵尸进程会显示为:

Z

四、查看僵尸进程数量统计

ps -eo stat | grep Z | wc -l

五、如何“处理”僵尸进程(重点)

⚠️ 僵尸进程不能直接 kill

正确做法:

  1. 找到父进程 PPID
ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/'
  1. 重启或杀死父进程(谨慎)
kill -9 父进程PID

或者让父进程正常回收子进程(通常是程序 bug)


六、常见原因

  • 父进程未调用 wait()
  • 多线程程序中线程异常退出
  • 服务异常(如 Java / Python / C++ 程序)

如果你愿意,可以贴一下:

ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/'

的输出,我可以帮你具体分析是哪里的问题。

0