Debian僵尸進程的形成主要是由于父進程沒有正確處理子進程的結束狀態。當一個子進程結束其執行時,它會向父進程發送一個SIGCHLD信號,告知父進程自己已經終止。如果父進程沒有及時調用wait()或waitpid()系統調用來讀取子進程的退出狀態和回收其資源,子進程就會進入僵尸狀態。
wait()
waitpid()
具體來說,僵尸進程的形成過程如下:
exit()