定位僵尸进程
ps aux | grep 'Z' 或 top(按 Z 键筛选)查看状态为 Z 的进程,记录其 父进程ID(PPID)。pstree -p 查看进程树,确认父子进程关系。终止父进程回收资源
kill -HUP <PPID>,若无效则强制终止:kill -9 <PPID>。systemd),可能导致服务异常。手动回收(程序员适用)
waitpid(-1, &status, WNOHANG) 非阻塞回收子进程资源。自动化清理(推荐)
crontab 设置执行频率(如每5分钟一次)。#!/bin/bash
ps -A -ostat,ppid,pid | grep -e '[Zz]' | awk '{print $2}' | xargs kill -HUP
修复程序逻辑
wait() 或 waitpid() 回收资源。SIGCHLD 信号并处理。监控与告警
top、htop 或监控工具(如 Prometheus)实时监控进程状态,发现异常及时处理。参考来源: