温馨提示×

centos怎么查看僵尸进程

小樊
57
2026-09-06 09:59:44
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,可以通过以下几种方式查看僵尸进程(Zombie / Z 状态进程)。


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

1. 查看所有僵尸进程

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

或更直接:

ps aux | grep ' Z '

2. 常见僵尸进程状态说明

  • Z:僵尸进程(zombie)
  • Z+:前台僵尸进程

二、使用 top 命令查看

top

在顶部信息中关注这一行:

Tasks:  xxx total,   x zombie

如果有 zombie 数量不为 0,说明系统存在僵尸进程。

在 top 中按:

  • f → 选 STAT 显示状态
  • 僵尸进程会显示为 Z

三、使用 htop(推荐,更直观)

如果已安装:

htop
  • 僵尸进程通常显示为 灰色 / Z 状态
  • 可按 F4 过滤 Z

安装(如未安装):

yum install -y htop

四、查看僵尸进程的父进程

僵尸进程本身无法被 kill,需要杀掉或重启其父进程。

ps -o pid,ppid,stat,cmd -C <进程名>

或查看某个僵尸进程的父进程:

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

示例:

ps -l <僵尸PID>

五、清理僵尸进程的方法

1. 杀掉父进程(常用)

kill -9 父进程PID

2. 如果父进程是 init(PID 1)

  • 不要直接 kill
  • 尝试:
    systemctl restart 对应服务
    

六、僵尸进程产生原因(简单说明)

  • 子进程退出,父进程未调用 wait()
  • 父进程异常或死循环
  • 程序 Bug(常见于 C / Java / 后台服务)

如果你愿意,可以把 ps aux 或 top 的输出贴出来,我可以帮你具体分析是哪个进程导致的僵尸。

0 踩