c/c++ 初始化为守护进程 大部分服务器框架都有这样一段代码 基本上固定这么写了
脱离终端进程的控制 独立进程组会话 忽略部分信号
void InitDaemon(void)
{pid_t pid = 0;
if ((pid = fork()) != 0) //创建一个子进程 进程退出 子进程继续执行
{
exit(0);
}
setsid(); //成为新会话首进程成为一个新进程组的组长进程并且脱离控制终端。
//忽略部分信号
signal(SIGHUP, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGPIPE, SIG_IGN);
signal(SIGTTOU, SIG_IGN);
signal(SIGTTIN, SIG_IGN);
signal(SIGCHLD, SIG_IGN);
signal(SIGTERM, SIG_IGN);
signal(SIGHUP, SIG_IGN);
ignore_pipe();
if ((pid = fork()) != 0)
{
exit(0);
}
umask(0);//使得拥有文件的所有权限xrw
}