linux 建立守護程序的相關知識

2022-08-26 19:24:10 字數 932 閱讀 4057

關鍵字:linux、守護程序

建立子程序,父程序退出

這是編寫守護程序的第一步。由於守護程序是脫離控制終端的,因此,完成第一步後就會在shell終端裡造成一程式已經執行完畢的假象。之後的所有工作都在子程序中完成,而使用者在shell終端裡則可以執行其他命令,從而在形式上做到了與控制終端的脫離。

在linux中父程序先於子程序退出會造成子程序成為孤兒程序,而每當系統發現乙個孤兒程序是,就會自動由1號程序(init)收養它,這樣,原先的子程序就會變成init程序的子程序。

在子程序中建立新會話

這一步也是必要的步驟。使用fork建立的子程序繼承了父程序的當前工作目錄。由於在程序執行中,當前目錄所在的檔案系統(如「/mnt/usb」)是不能解除安裝的,這對以後的使用會造成諸多的麻煩(比如系統由於某種原因要進入單使用者模式)。因此,通常的做法是讓」/」作為守護程序的當前工作目錄,這樣就可以避免上述的問題,當然,如有特殊需要,也可以把當前工作目錄換成其他的路徑,如/tmp。改變工作目錄的常見函式式chdir。

重設檔案許可權掩碼

檔案許可權掩碼是指遮蔽掉檔案許可權中的對應位。比如,有個檔案許可權掩碼是050,它就遮蔽了檔案組擁有者的可讀與可執行許可權。由於使用fork函式新建的子程序繼承了父程序的檔案許可權掩碼,這就給該子程序使用檔案帶來了諸多的麻煩。因此,把檔案許可權掩碼設定為0,可以大大增強該守護程序的靈活性。設定檔案許可權掩碼的函式是umask。在這裡,通常的使用方法為umask(0)。

關閉檔案描述符

同檔案許可權碼一樣,用fork函式新建的子程序會從父程序那裡繼承一些已經開啟了的檔案。這些被開啟的檔案可能永遠不會被守護程序讀寫,但它們一樣消耗系統資源,而且可能導致所在的檔案系統無法卸下。

您可能感興趣的文章:

Linux 守護程序建立

守護程序是在後台執行,不受使用者的控制 守護程序沒有任何存在的父程序。如果乙個程序想成為守護程序,有fork 建立 然後終止父程序,脫離資源。例子 void init daemon int pid,i pid fork if pid exit 0 結束父程序 else exit 1 失敗退出 是子程...

linux守護程序的建立

下面的完成了這樣乙個功能,建立乙個守護程序,每個一秒在 tmp目錄下的檔案peng.txt中記錄當前系統時間。一 守護程序 守護程序是linux中的後台服務程序,在系統啟動時開始執行,在系統關閉時終止。linux系統中的大多數服務程序都是由守護程序實現的。二 建立守護程序 此時,子程序變成孤兒程序,...

linux 守護程序詳解及建立守護程序

linux 守護程序詳解及建立守護程序 守護程序是一種後台執行並且獨立於所有終端控制之外的程序。守護程序的啟動 要啟動乙個守護程序,可以採取一下幾種方式 守護程序的建立 先來看乙個守護程序建立的例子 include include include include define maxfd 64 vo...