僵尸进程已经不占资源,也杀不掉,真正要处理的是父进程——父进程没有回收子进程的退出状态,才会留下僵尸。用 ps 过滤状态为 Z 的进程,看它的 PPID。若父进程是自己的服务,说明代码里没有回收子进程,属于缺陷,要显式处理子进程退出;父进程已死或无法回收时,重启该父进程即可把僵尸一并清掉。
ps -eo pid,ppid,stat,comm | awk '$3 ~ /^Z/'
# 拿到 PPID 后确认该父进程是否在回收子进程,必要时重启它
THE END






暂无评论内容