程序特例 殭屍程序 孤兒程序 守護程序

2021-10-08 21:36:29 字數 833 閱讀 3478

殭屍程序: 子程序結束,父程序尚未呼叫wait()**子程序資源,子程序的pcb還殘留在核心,造成資源的浪費

孤兒程序:父程序先於子程序結束,子程序成為孤兒程序,子程序修改pcb使其父程序為init程序,孤兒程序結束後,由init程序負責**其pcb資源

守護程序(daemon process),是linux中的後台程序。守護程序具有以下特徵:

守護程序是用來執行特殊任務的,如下面的示例所示:

建立乙個守護程序的步驟

執行乙個fork(),建立子程序,父程序退出,子程序執行setsid(),開啟乙個新的會話並釋放與控制終端之間的聯絡。

改變當前目錄為根目錄(不是必須) chdir()函式 防止占用可解除安裝的檔案系統。

重設檔案許可權掩碼(不是必須) umask()函式,防止繼承的檔案建立遮蔽字拒絕某些許可權,增加守護程序靈活性。

關閉檔案描述符(不是必須) 。於 daemon 失去了控制終端並且是在後台執行的,因此讓 daemon 保持檔案描述符 0、 1 和 2

的開啟狀態毫無意義,因為它們指向的就是控制終端。此外,無法解除安裝長時間執行的 daemon 開啟的檔案所在的檔案系統。

開始執行守護程序核心工作(必須) 守護程序退出處理程式模型

建立守護程序的**示例:

#include

#include

#include

#include

#include

intmain()

return0;

}

孤兒程序 殭屍程序 守護程序

1.孤兒程序 如果父程序先退出,子程序還沒退出,那麼子程序將被託孤給init程序 1號程序 這時子程序的父程序就是init程序 1號程序 其實還是很好理解的.2.殭屍程序 如果我們了解過linux程序狀態及轉換關係,我們應該知道程序這麼多狀態中有一種狀態是僵死狀態,就是程序終止後進入僵死狀態 zom...

linux環境程式設計 孤兒程序,殭屍程序,守護程序

前面的 程序控制我們已經陸續的介紹啦,今天介紹一下孤兒程序,殭屍程序,還有守護程序 一.孤兒程序 父程序 先於 子程序結束,那子程序就成為了孤兒程序,父程序的資源被 init程序 沒有結束的子程序就被init程序領養,init程序可以被看程是孤兒院的院長。二.殭屍程序 父程序 還在執行 子程序已經結...

區別之守護程序 孤兒程序 殭屍程序

殭屍程序是 乙個程序使用fork建立子程序,如果子程序退出,而父程序並沒有呼叫wait或waitpid獲取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中。這種程序稱之為僵死程序。孤兒程序是因為父程序異常結束了,然後被1號程序init收養。守護程序是建立守護程序時有意把父程序結束,然後被1號...