守護進程的概念和建立方法 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 守護進程的概念和建立方法 (http://www.webasp.net/article/11/10869.htm) |
| -- 作者:未知 -- 發佈日期: 2004-06-11 |
|
守護進程是一種後台運行彬接獨立於所有終端控制之外的進程. 正是因為守護進程獨立於所有的終端控制,因此,他無法向通常程序那樣將信息直接輸出到標準輸出和標準錯誤輸出.威力解決這個問題,linux提供了syslog()函數.通過他,守護進程可以向系統的log文件寫入信息.他在系統函數庫syslog.h中的定義如下: #include 下面用一個示例來講解: #define MAXFD 64 main(){ int i; if(fork()) setsid(); /*建立一個新的進程組,在這個新的進程組中,子進程成為這個進程組的首進程.這樣,該進程就獨立於所有終端之外*/ signal(SIGHUP,SIG_IGN); /*忽略SIGHUP信號*/ if(fork()) chdir("/"); /*改變當前目錄,使得進程不和任何文件系統關聯*/ unmask(0); /*清除文件掩碼,消除進程掩碼對其所創建文件的影響*/ for(i=0;i close(i); /*關閉所有文件描述符*/ openlog(pname,LOG_PID,facility); /*打開記錄*/ |
| webasp.net |