Linux僵尸进程的查找和处理
- 查找系统当前是否存在僵尸进程
注:使用top命令检查,当zombie数量不为0时代表存在僵尸进程 - 定位僵尸进程
使用 ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]' 命令定位僵尸进程
僵尸进程ID:25158
僵尸进程的父进程ID:22543 -
使用kill -HUP 或者 kill -1 杀死僵尸进程的父进程
kill -1 22543
注:生产环境一定要检查确认僵尸进程的父进程退出是否对业务有影响 -
检查
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
注:此时僵尸进程已被杀死 -
参数解读
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
-A 参数列出所有进程
-o 自定义输出字段 stat(状态)、ppid(进程父id)、pid(进程id)、cmd(命令)
因为状态为z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程