三、特殊進程之孤兒進程

01. 孤兒進程概述
父進程運行結束,但子進程還在運行的子進程就稱爲孤兒進程(Orphan Process)。孤兒進程最終會被 init 進程(進程號爲 1 )所收養,並由 init 進程對它們完成狀態收集工作。

孤兒進程是沒有父進程的進程,爲避免孤兒進程退出時無法釋放所佔用的資源而變爲殭屍進程,進程號爲 1 的 init 進程將會接受這些孤兒進程,這一過程也被稱爲“收養”。init 進程就好像是一個孤兒院,專門負責處理孤兒進程的善後工作。每當出現一個孤兒進程的時候,內核就把孤兒進程的父進程設置爲 init ,而 init 進程會循環地 wait() 它的已經退出的子進程。這樣,當一個孤兒進程淒涼地結束了其生命週期的時候,init 進程就會代表黨和政府出面處理它的一切善後工作。因此孤兒進程並不會有什麼危害。

注意:

在有些啓動圖形界面的系統中,有些收養孤兒進程的並不一定是1號進程。

02. 孤兒進程代碼
孤兒進程代碼


測試結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章