1 編寫守護程序基本規則
1)umake(0)將檔案模式建立遮蔽字設定為0
2)fork之後,父程序exit
3)子程序呼叫setsid
4)更改工作目錄chdir("/")
5)關閉所有開啟的檔案描述符
6)在/dev/null上開啟檔案描述符1,2,3
2 守護程序出錯處理
產生日誌訊息的三種方式:
1)核心程序呼叫log函式寫日誌訊息到/dev/klog
2)使用者程序呼叫syslog函式寫日誌訊息到/dev/log
3)網路主機上的程序傳送日誌訊息udp包到514埠
syslogd守護程序用來處理日誌訊息,此程序的配置檔案一般為/etc/syslog.conf,該檔案決定不同種類的訊息應該如何處理
#include void openlog(constchar *ident,int option,int
facility)
void syslog(int priority,const
char *format,...)
void
closelog();
int setlogmask(int maskpri)
ident一般是程式名,將被加到每條日誌訊息中
UNIX高階程式設計 第13章 守護程序
請移步到這 13.2 守護程序的特徵 注意,大多數守護程序都以超級使用者 root 特權執行。所有的守護程序都沒有控制終端,其終端名設定為問號。核心守護程序以無控制終端方式啟動。使用者層守護程序缺少控制終端可能是守護程序呼叫了setsid的結果。大多數使用者層守護程序都是程序組的組長程序以及會話的首...
UNIX高階環境程式設計 第13章 守護程序
守護程序 沒有控制終端,長期執行在後台的程序 void daemonize const char cmd else if pid 0 呼叫setsid以建立乙個新會話 使呼叫程序 a.成為新會話的首程序,b.成為乙個新程序組的組長程序,c.沒有控制終端。setsid struct sigaction...
13 守護程序
守護程序是一種純粹的後台程序,與執行前環境完全隔離,包括未關閉的檔案描述符 控制終端 會話 程序組 工作目錄以及檔案建立掩碼等 很多守護程序是父程序 fork 產生,所以會繼承所有的父程序位址空間中的環境,所以必須在守護程序誕生之初,斷絕這些相關環境,當然,守護程序也可以在 linux 系統啟動時從...