python-僵屍進程和孤兒進程


 

孤兒進程:

#父進程在子進程還在運行前退出,最后會被init進程接管,init以父進程的身份處理子進程運行完畢后遺留狀態信息


僵屍進程:
#一直創建子進程,不回收子進程運行完畢后的狀態信息,從而導致大量的僵屍進程,不能產生新的進程



孤兒進程:一個父進程退出,而父進程還要多個子進程還在運行,那么這么子進程將成為孤兒進程。孤兒進程被init進程(進程號為1)所收養,並由init進程對它們完成狀態收集工作,init將會以父進程的身份對僵屍狀態的子進程進行處理。

任何一個子進程(init除外)在exit()之后,並非馬上就消失掉,而是留下一個稱為僵屍進程(Zombie)的數據結構,等待父進程處理。
如果父進程在子進程結束之前退出,則子進程將由init接管。init將會以父進程的身份對僵屍狀態的子進程進行處理。
"""
"""
僵屍進程:一個進程使用fork創建子進程,如果子進程退出,而父進程並沒有調用wait或waitoid獲取子進程的狀態信息,那么子進程的進程描述符仍然保存着系統中,這種進程稱為僵屍進程

 

 

如果進程不調用wait / waitpid的話, 那么保留的那段信息就不會釋放,其進程號就會一直被占用,但是系統所能使用的進程號是有限的,如果大量的產生僵死進程,將因為沒有可用的進程號而導致系統不能產生新的進程. 此即為僵屍進程的危害,應當避免。

 

 

 

詳情點擊:孤兒進程與僵屍進程詳解

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM