僵尸进程的定位与清理
ps 中进程状态为 Z 或命令显示 <defunct>,占用 PID 但不占 CPU/内存。大量僵尸会耗尽 PID,导致新进程无法创建。
ps -eo stat,ppid,pid,comm | awk '$1 ~ /Z/'
ps -eo pid,ppid,stat,comm | grep -E ' Z|<defunct>'
pstree -p <ppid>
cat /proc/sys/kernel/pid_max
wait()/waitpid() 回收子进程。SIGCHLD。kill -9 清掉;要处理它的父进程。wait 逻辑,或给容器加 --init/tini 作为 PID 1。ps — 查看 Z 状态pstree — 父子关系kill — 终止父进程