Daemon 程式編寫(請根據實際情況自行擴充套件)

2021-07-05 03:20:16 字數 709 閱讀 5270

編寫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...