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