當(dāng)一個(gè)進(jìn)程完成它的工作終止之后,它的父進(jìn)程需要調(diào)用wait()或者waitpid()系統(tǒng)調(diào)用取得子進(jìn)程的終止?fàn)顟B(tài)。
一個(gè)進(jìn)程使用fork創(chuàng)建子進(jìn)程,如果子進(jìn)程退出,而父進(jìn)程并沒有調(diào)用wait或waitpid獲取子進(jìn)程的狀態(tài)信息,那么子進(jìn)程的進(jìn)程描述符仍然保存在系統(tǒng)中。這種進(jìn)程稱之為僵死進(jìn)程。
理解了孤兒進(jìn)程和僵尸進(jìn)程,我們臨時(shí)加了守護(hù)進(jìn)程這一小節(jié),守護(hù)進(jìn)程就是后臺(tái)進(jìn)程嗎?沒那么簡單。