Linux 僵尸进程(Zombie Process)排查与处理笔记

1. 背景说明

在 节点上通过 top 发现系统存在 Zombie 进程(Z 状态)。Zombie 进程无法被直接杀死,需要通过排查父进程并让其回收子进程资源来解决。


2. 什么是 Zombie(僵尸进程)

当子进程退出(exit)后,父进程尚未调用 wait()/waitpid() 回收其退出状态,系统会将该进程标记为僵尸进程,显示状态为 Zdefunct

Zombie 不消耗 CPU 或内存,但占用进程号。如果数量过多,会影响系统运行。


3. 常见进程状态简表

状态 含义
R 运行(runnable)
S 可中断睡眠(sleeping)
D 不可中断睡眠(通常为 IO)
T 停止(traced or stopped)
Z 僵尸(zombie / defunct)

4. Zombie 进程的查看方法

方法一:使用 top

top | head -n 2

在 top 输出的第一行可看到 Zombie 进程数量,例如:

Tasks: 234 total, 1 running, 233 sleeping, 0 stopped, 2 zombie

方法二:通过 defunct 字段统计

ps -ef | grep defunct | grep -v grep | wc -l

显示当前 defunct 记录数量(仅作数量参考)。


方法三:查看详细进程状态(推荐)

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

输出示例:

Z   1234  5678  [nginx] <defunct>

字段含义:

  • stat:进程状态(Z 为僵尸)
  • ppid:父进程 PID
  • pid:僵尸进程 PID(不可杀)
  • cmd:命令名称(通常显示为 <defunct>

5. Zombie 进程处理方法

✦ 关键点:Zombie 不能被直接 kill

Zombie 已经退出,进程本体不存在,无法对其 PID 进行 kill。

必须处理其父进程(PPID),让父进程执行 wait() 清理僵尸。


5.1 找到 Zombie 的父进程 PPID

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

示例输出:

Z   4567  7890  [worker] <defunct>

这里:

  • PPID = 4567 → 这个父进程需要处理
  • PID = 7890 → 僵尸进程,没必要 kill

5.2 通知父进程回收 Zombie(常用)

向父进程发送 SIGCHLD 信号,让其调用 wait():

kill -18 <PPID>

比如:

kill -18 4567

自动化处理(非必要):

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print "kill -18 " $2}'

5.3 如果父进程无响应(程序 bug 或卡住)

若父进程无法正确处理 SIGCHLD,Zombie 会持续存在。

解决方式:

方法一:重启父进程(推荐)

kill <PPID>
systemctl restart xxx.service

方法二:父进程退出后,init(1) 会自动接管并清理

如果父进程被 kill,Zombie 将被 systemd 接管并最终回收。


5.4 如果 Zombie 来自核心服务

例如 kubelet、docker、数据库等,建议:

  1. 查看父进程日志确认原因(例如死锁、io hang)
  2. 无法解决时,平滑重启对应服务(避免影响集群)

6. 常见 Zombie 产生原因

  • 父进程没有正确调用 wait()(程序 bug)
  • 父进程阻塞(D 状态磁盘 IO 阻塞)
  • 父进程锁死或卡住(无响应)
  • 应用程序退出流程不完整

7. 排查建议

  1. 重点关注父进程是否异常

    ps -p <PPID> -o pid,stat,cmd
    
  2. 如果父进程处于 D 状态(不可中断 IO),需要重点排查存储层问题。

  3. 若 Zombie 数量持续增长,说明应用需要修复(可能是 wait() 漏掉了)。


8. 总结

  • Zombie 不能直接 kill,因为它已经 “死了”。
  • 应通过 找父进程 → 发送信号 → 必要时重启父进程 的方式处理。
  • 少量 Zombie 无害,大量 Zombie 会导致 PID 耗尽。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐