守护进程的创建过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了守护进程的创建过程相关的知识,希望对你有一定的参考价值。

编写守护进程需要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);
}

以上是关于守护进程的创建过程的主要内容,如果未能解决你的问题,请参考以下文章

如何在Linux下用c语言创建守护进程并监控系统运行期间的所有进程

ubuntu12.04下创建了一个守护进程,生成了一个可执行文件,如何让这个可执行文件开机自动运行?

Linux守护进程

如何创建守护进程?

python 守护进程

创建守护进程-转