守护进程的创建过程

编写守护进程需要5步:


1 创建子进程,父进程结束(让这个进程由init进程托管)

 

1 pid = fork();
2 if(pid > 0) //父进程
3 {
4   exit(0);
5 }

 

2 在子进程中创建新会话(此进程就可以脱离原来进程,脱离控制终端,脱离原来进程组)

 

1 setsid(); //最主要是脱离控制终端

 

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

 

1 chdir("/tmp");

 

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

 

1 umask(0);

 

5 关闭打开的文件描述符(如果父进程打开了一些文件,子进程会继承过来,那么子进程把这些文件关闭)

 

1 int num;
2 num = getdtablesize(); //获得当前打开的文件描述符表
3 for(i = 0; i < num; i++)
4 {
5   close(i);
6 }

 

posted @ 2017-02-04 20:12  亮哥vvv  阅读(274)  评论(0编辑  收藏  举报