SuperAPI AI 工具集

process-cleanup

部署与运维

查看项目

更新于 10-16 07:57

技能介绍

用途:检测并回收僵尸进程。僵尸进程(状态 Z)已退出但父进程未调用 wait() 收集其退出状态,不占用 CPU 或内存,但会占用 PID 槽位并可能累积。僵尸进程无法被杀死,只能通过向父进程发送 SIGCHLD 促其回收,或杀死父进程让 init/launchd 接管并回收孤儿进程。

主要能力:使用 /bin/ps 查询进程状态;扫描僵尸进程;默认仅检测不发送信号;使用 --kill 时向父进程发送 SIGCHLD(非破坏性提醒回收);若父进程忽略 SIGCHLD,脚本会报告父进程 PID,需与用户确认后再决定是否杀死。严禁杀死 PID 1(init/launchd)。若 ps 被别名,应使用 /bin/ps 绕过。

使用方式:列出僵尸进程可执行 /bin/ps ax -o pid,state,ppid,user,command | awk '$2 ~ /Z/';列出全部进程及状态可执行 /bin/ps ax -o pid,state,ppid,etime,args。运行辅助脚本:仅检测(默认)执行 bash scripts/kill-zombies.sh;回收僵尸进程执行 bash scripts/kill-zombies.sh --kill。

适用场景:系统中出现僵尸进程累积、需要排查父进程或进行清理时。

限制:默认模式不发送任何信号;--kill 仅发送 SIGCHLD,若父进程忽略则无法强制回收,需人工确认后处理父进程;不得杀死 PID 1。资料未提供脚本内部实现细节、依赖环境或跨平台支持范围,暂未提供。