當父進程死亡時,殭屍進程如何處理?

當父進程死亡時,殭屍進程如何處理?

Unix 系統使用哪種技術來刪除父進程已終止的殭屍進程?

答案1

當一個行程的父行程死亡時,init(行程1)會繼承該行程。然後它將收穫已成為或成為殭屍的進程。

收割通常由父母完成,因為父母需要知道孩子何時死亡。它還必須停止重複使用子程序的 pid,直到父進程知道為止,這樣父進程就不會發出錯誤的進程信號(發出正確的 pid 信號,但 pid 現在屬於新進程。)。在收穫的過程中,父母應該忘記孩子。

答案2

如果一個進程終止,並且該進程有處於殭屍狀態的子進程,則所有殭屍子進程的父進程ID設定為1(init進程),它將繼承子進程並清理它們(即,init將等待它們,這會消除殭屍)。

相關內容