linux 怎样生成守护进程

来源:互联网 发布:算法竞赛入门经典紫书 编辑:程序博客网 时间:2024/06/04 17:57
int init_daemon(void){pid_t pid;int i;pid = fork();if(pid > 0)   //第一步,结束父进程,使得子进程成为后台    exit(0);else if(pid < 0)    return -1;//第二步建立一个新的进程组,在这个新的进程组中,子进程成为这个进程组的首进程,以使该进程脱离所有终端。setsid();//再次新建一个子进程,退出父进程,保证该进程不是进程组长,同时让该进程无法再打开一个新的终端。pid = fork();if(pid > 0)exit(0);//第三步,关闭所有从父进程继承的不再需要的文件描述符。   0 1 2 ------ 输入 输出 报错for(i=0;i<NOFILE;close(i++))//第四步,改变工作目录,使得进程不与任何文件系统联系chdir(“/”);//第五步,将文件屏蔽字设置为0umask(0);//第六步,忽略SIGCHLD信号,使得子进程不产生僵尸进程signal(SIGCHLD,SIG_IGN);return 0;}


                                             
0 0
原创粉丝点击