上一篇文章講過僵尸進程,這里再分享給大家另外一種狀態。
孤兒進程
什么是孤兒進程?
當一個子進程還在執行時,它的父進程已經退出了,那么這個子進程的退出信息也沒有被父進程接收到,如果子進程的退出信息沒有被別的進程接收到,那么這個子進程就會變成一個僵尸進程,所以孤兒進程可能會引發僵尸進程。所以這個子進程必須被其他進程所領養,領養它的進程為1號進程,則它的退出信息會被1號進程所接收。
如果父進程退出,父進程會變成僵尸進程嗎?
不會,因為父進程的父進程為bash,父進程的退出信息會由bash接收到,這些我們看不到。
我們這里再重溫下僵尸進程和孤兒進程:
僵尸進程:
一個進程使用fork創建子進程,如果子進程退出,而父進程并沒有調用wait或waitpid獲取子進程的狀態信息,那么子進程的進程描述符仍然保存在系統中。
這種進程稱之為僵死進程。
孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那么那些