ps aux | grep 'Z'
:篩選狀態為Z(僵尸)的進程,顯示PID、PPID等信息。top
/htop
:實時查看進程狀態,僵尸進程狀態標記為Z。pstree -p
:以樹狀結構顯示進程關系,定位僵尸進程所屬父進程。ps -o ppid= -p <僵尸進程PID>
獲取父進程ID,執行kill -9 <父進程PID>
。init
(PID=1),需重啟系統清理。SIGCHLD
信號處理函數,調用wait()
或waitpid()
回收子進程資源。SIGCHLD
信號(signal(SIGCHLD, SIG_IGN)
),由系統自動回收。wait()
/waitpid()
,避免子進程遺留。nohup
或&
運行后臺進程,減少僵尸進程風險。systemd
管理服務,利用其自動回收機制避免僵尸進程。參考來源:[1,2,3,4,5,7,8,9,10,11]