Linux 守護程序

2021-08-21 01:37:03 字數 855 閱讀 1437

概念

無控制終端的會話首程序,或者是孤兒程序組的成員,在後台執行任務。

守護程序程式的名稱通常以「d」結尾。

程式設計規則

(1)呼叫unmask將檔案模式建立遮蔽字設定為乙個已知值(通常是0)。因為繼承來的檔案模式建立遮蔽字可能會被設定為拒絕某些許可權。

(2)呼叫fork,然後父程序exit。作用:

1)如果該守護程序是作為一條簡單的shell命令啟動的,那麼父程序終止會讓shell認為該命令已經執行完畢,shell就可以提到前台。

2)雖然子程序繼承了父程序的程序組id,但獲得了乙個新的程序id,保證子程序不是乙個程序組的組長程序,這是setsid呼叫的先決條件。

(3)呼叫setsid建立乙個新會話,然後使呼叫程序成為新會話的首程序,並成為新程序組的組長程序,並且沒有控制終端。

(4)將當前工作目錄更改為根目錄或某個指定位置。因為當前工作目錄掛載的檔案系統不能被解除安裝。

(5)關閉不再需要的檔案描述符。

(6)有一些守護程序會開啟/dev/null 使其具有檔案描述符0,1,2,這樣讓任何乙個試圖讀標準輸入、寫標準輸出或標準出錯的庫例程都不會產生任何效果。

系統守護程序

依賴於作業系統實現。父程序id為0的通常是核心程序,作為系統引導裝入過程的一部分而啟動(init除外,它是乙個由核心在引導裝入時啟動的使用者層次的命令),通常存在於系統的整個生命週期。無控制終端,無命令列,以超級使用者特權執行。

程序1通常是init,也是系統守護程序,主要負責啟動各執行層次特定的系統服務。

rpcbind守護程序,提供將遠端過程呼叫程式號對映為網路埠號的服務。

Linux守護程序

linux下守護程序一般分為5步,但是實際上只有前兩步是關鍵。第一步 建立子程序,關閉父程序。使用fork 建立,父程序exit 退出。關鍵第二步 建立新的會話id,setsid 作用是使子程序擺脫原有的會話 程序組 終端的控制,其實,linux下每個程序都是由一號程序建立而來的,每個程序都是1號程...

Linux 守護程序

守護程序daemon,是生存期較長的一種程序,名字一般以字母d結尾。它們常常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以說它們是在後台執行的。linux系統有很多守護程序,它們執行日常事務活動。自舉只有兩個功能 加電自檢和磁碟引導。加電自檢 當我們按下計算機電源開關時,頭幾秒鐘...

Linux守護程序

程式設計級別 一 守護程序的概念 守護程序是一種生存期比較長的程序,常常在系統自舉時啟動,在系統關閉時退出。因為他們沒有控制終端,因此是在後台執行的。二 守護程序的程式設計規則 1清除檔案模式建立遮蔽字 2成為乙個新的會話首程序 3略hup訊號。然後再次fork 4改變當前工作路徑 5關閉所有的檔案...