我們經(jīng)常聽別人說到孤兒進程(Orphan Process),究竟是什么呢,現(xiàn)在我們一次理解透。
根據(jù)維基百科的解釋,孤兒進程指的是在其父進程執(zhí)行完成或被終止后仍繼續(xù)運行的一類進程。
孤兒進程與僵尸進程是完全不同的,后面會詳細介紹僵尸進程。而孤兒進程借用了現(xiàn)實中孤兒的概念,也就是父進程不在了,子進程還在運行,這時我們就把子進程的PPID設(shè)為1。前面講PID提到,操作系統(tǒng)會創(chuàng)建進程號為1的init進程,它沒有父進程也不會退出,可以收養(yǎng)系統(tǒng)的孤兒進程。
在現(xiàn)實中用戶可能刻意使進程成為孤兒進程,這樣就可以讓它與父進程會話脫鉤,成為后面會介紹的守護進程。