top
命令:查看 zombie
列,若不為 0 則存在僵尸進程。ps
命令:ps -A -o stat,ppid,pid,cmd | grep -e '[Zz]'
,篩選狀態為 Z
的進程。ps -o ppid -p <僵尸進程PID>
獲取父進程 ID。HUP
信號,嘗試讓其回收子進程資源:kill -HUP <父進程PID>
。kill -9 <父進程PID>
,或直接殺死僵尸進程(可能無效):kill -9 <僵尸進程PID>
。ps -A -o stat,ppid | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
。wait()
或 waitpid()
回收子進程資源,或通過信號處理函數捕獲 SIGCHLD
信號自動回收。systemd
管理服務,避免進程異常退出導致僵尸進程。cron
定時任務運行清理腳本,避免長期積累。