#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;
/*將工作目錄設定位“/”*/
chdir("/");
/*清除文件掩碼*/
umask(0);
for(i = 0; iMAXFD; i++){
close(i);
}
/*打開log*/
openlog(pname, LOG_PID, facility);
}