linux c 守护进程

来源:互联网 发布:管理和领导的区别 知乎 编辑:程序博客网 时间:2024/04/30 23:17

不用多介绍,网上一搜一大把,记在这里只为日后查找方便


 其实守护进程就是一个啥也不干的进程,不会因为种种原因而导致进程崩溃,确保自始至终都在运行;而它唯一干的事情就是看着另一个进程,当收到那个进程崩溃的信息时再启动之!

   

   

#include 
#include 
#include 
#include 
#include

void init_daemon(void)
{
int pid;
int i;

if(pid=fork())
exit(0);//是父进程,结束父进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第一子进程,后台继续执行

setsid();//第一子进程成为新的会话组长和进程组长
//并与控制终端分离
if(pid=fork())
exit(0);//是第一子进程,结束第一子进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长

for(i=0;i< NOFILE;++i)//关闭打开的文件描述符
close(i);
chdir("/tmp");//改变工作目录到/tmp
umask(0);//重设文件创建掩模
return;
}


 在main函数中执行

    init_daemon();//初始化为Daemon

    就可以把进程变成守护进程


0 0
原创粉丝点击