linux 守護進程詳解及建立守護進程
守護進程是一種后臺運行并且獨立于所有終端控制之外的進程。
守護進程的啟動
要啟動一個守護進程,可以采取一下幾種方式:
守護進程的建立
先來看一個守護進程建立的例子:
#include sys/types.h> #include signal.h> #include unistd.h> #include syslog.h> #define MAXFD 64 void daemon_init(const char* pname, int facility){ int i; pit_t pid; /*fork(),終止父進程*/ if(pid=fork()){ exit(0); } /*第一子進程*/ setsid(); signal(SIGHUP,SIG_IGN); /*fork()終止第一子進程*/ if(pid=fork()) exit(0); /*第二子進程*/ daemon_proc = 1; /*將工作目錄設(shè)定位“/”*/ chdir("/"); /*清除文件掩碼*/ umask(0); for(i = 0; iMAXFD; i++){ close(i); } /*打開log*/ openlog(pname, LOG_PID, facility); }
從上面的程序可以看出,建立一個守護進程需要以下操作:
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!