首页 > 代码库 > 守护进程的创建过程

守护进程的创建过程

编写守护进程需要5步


1 创建子进程,父进程结束(让这个进程由init进程托管)
pid = fork();
if(pid > 0) //父进程
{
  exit(0);
}
2 在子进程中创建新会话(此进程就可以脱离原来进程,脱离控制终端,脱离原来进程组)
setsid(); //最主要是脱离控制终端

3 改变当前目录(每一个进程都有一个当前目录), 不是必须的
chdir("/tmp");

4 重新设置文件权限掩码(不是必须的)
umask(0);

5 关闭打开的文件描述符(如果父进程打开了一些文件,子进程会继承过来,那么子进程把这些文件关闭)
int num;
num = getdtablesize(); //获得当前打开的文件描述符表
for(i = 0; i < num; i++)
{
  close(i);
}

守护进程的创建过程