什麼是殭屍程序?
乙個子程序在其父程序沒有呼叫wait()或waitpid()的情況下退出。這個子程序就是殭屍程序。如果其父程序還存在而一直不呼叫wait,則該殭屍程序將無法**,等到父程序結束後,會被init**。
驗證:
#include#include#includeint main()
3秒後查詢其程序資訊:
通過上邊兩張圖可以發現:
子程序24055的在三秒後的狀態為z(僵死狀態),代表該程序為殭屍程序。
什麼是孤兒程序?
乙個父程序退出,而它的乙個或多個子程序還在執行,那麼這些子程序就是孤兒程序。孤兒程序將被init程序(1號程序)所收養,並由init程序對他們完成狀態收集工作。
簡單理解:我們現實中的孤兒,被福利中心收養。那麼,此處的孤兒(孤兒程序),福利中心(init程序)。
驗證:
#include#include#includeint main()
可以發現:剛開始(3秒內),子程序的父程序為24159。三秒後其父程序為1(init)
殭屍程序和孤兒程序
殭屍程序 乙個子程序在其父程序還沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。孤兒程序 乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序 程序號為1 所收養,並由init程序對它們完成狀態收集工作。殭屍程序將會導致資源...
殭屍程序和孤兒程序
殭屍程序和孤兒程序 在unix系統程式設計中,常常會碰到兩個概念 僵死程序和孤兒程序 僵死程序 在unix程序模型中,程序是按照父程序產生子程序,子程序產生子子程序這樣的方式建立出完成各項相互協作功能的程序的。當乙個程序完成它的工作終止之後,它的父程序需要呼叫wait 或者waitpid 系統呼叫取...
殭屍程序和孤兒程序
孤兒程序 乙個父程序退出,而他的乙個或多個子程序還在執行,那麼那些子程序將會成為孤兒程序。孤兒程序將被init程序 程序號為1 所收養,並由init程序對他們完成狀態收集工作。殭屍程序 乙個子程序在其父程序還沒有呼叫 wait 或 waitpid 的情況下退出。這個子程序就是殭屍程序。還有一種情況就...