編寫daemon程式有一些基本的規則,以避免不必要的麻煩。
(1) 首先是程式執行後呼叫fork,並讓父程序退出。子程序獲得乙個新的程序id,但 繼承了父程序的程序組id。(2) 呼叫setsid建立乙個新的session,使自己成為新session和新程序組的leader,並使程序沒有控制終端(tty)。
(3) 改變當前工作目錄至根目錄,以免影響可載入檔案系統。或者也可以改變到某些特定的目錄。
(4) 設定檔案建立mask為0,避免建立檔案時許可權的影響。
(5) 關閉不需要的開啟檔案描述符。因為daemon程式在後台執行,不需要於終端互動,通常就關閉stdin、stdout和stderr。其它根據實際情況處理。
下面給出一段例子:
#include #include #include #include #include #include #include int daemon_init(void)
void sig_term(int signo)}
int main(void)
return(0);
}
根據實際情況來選擇出行方式
週日外出去玩,出行方式有步行,騎行,公車。每個人因人或環境等等因素而選擇的方式有所不同。簡單工廠是符合此型別的。只有在執行時,才知道使用的哪種方法。建立乙個抽象類base 下面分別建立3個類別,bus,ycling,walk,它們需要重寫抽象類的抽象方法。既然是簡單工廠,在這個工廠類中,去根據條件來...
編寫Linux系統下Daemon程式的方法步驟
一 引言 daemon程式是一直執行的服務端程式,又稱為守護程序。本文介紹了在linux下編寫daemon程式的步驟,並給出了例子程式。二 daemon程式簡介 daemon是長時間執行的程序,通常在系統啟動後就執行,在系統關閉時才結束。一般說daemon程式在後台執行,是因為它沒有控制終端,無法和...
利用按鍵實現LED燈的迴圈移位,可根據實際情況修改
利用按鍵實現led燈的迴圈移位,可根據實際情況修改 include include define uint unsigned int define uchar unsigned char uchar temp 全域性變數 uchar flag1 0 flag2 0 flag3 0 sbit key1...