ps aux | grep 'Z':筛选状态为“Z”的僵尸进程,显示PID、父进程ID(PPID)等信息。top/htop:在进程列表中查看状态为“Z”的进程,top可通过按“Z”键高亮显示。pstree -p:以树状结构显示进程关系,标记僵尸进程。kill -s SIGCHLD PPID,通知父进程回收子进程资源。# 查找僵尸进程的PPID
ps -A -o stat,ppid | grep -e '^[Zz]' | awk '{print $2}'
# 发送信号
kill -s SIGCHLD <PPID>
kill -9 PPID),僵尸进程会被init进程(PID=1)自动回收。zombie_cleaner.sh)定期检测并清理僵尸进程,通过cron定时运行。#!/bin/bash
zombies=$(ps -A -ostat,ppid | grep -e '^[Zz]' | awk '{print $2}')
if [ -n "$zombies" ]; then
kill -s SIGCHLD $zombies 2>/dev/null
sleep 5
remaining=$(ps -A -ostat | grep -c '^Z')
if [ $remaining -gt 0 ]; then
kill -9 $(ps -A -o ppid | grep -e '^[Zz]' | awk '{print $1}') 2>/dev/null
fi
fi
设置定时任务:crontab -e
# 添加:每5分钟运行一次
*/5 * * * * /path/to/zombie_cleaner.sh
wait()或waitpid()回收资源,或注册SIGCHLD信号处理器。提示:操作前建议备份重要数据,生产环境优先通过信号通知或重启服务处理,避免直接强制终止关键进程。