定义:
守护进程是一种后台运行并且独立于所有终端之外的进程
创建一个守护进程
#include<sys/types.h>
#include<signal.h>
#include<unistd.h>
#include <syslog.h>
#define MAXFD 64
void d_init(const char* pname , int facility){
int i;
pid_t pid;
//fork,终止父进程
if (pid==fork())
{
exit(0);
}
//第一子进程
setsid();//新建组,组id就是这个子进程id
signal(SIGHUP,SIG_IGN);
//fork,终止第一子进程,产生第二子进程
if (pid==fork())
{
exit(0);
}
//第二子进程
//将工作目录设定为“/”;
chdir("/");
//清除文件掩码
umask(0);
if (i=0;i<MAXFD;i++)
{
close(i);
}
openlog(pname,LOG_PID,facility);
}