守护进程编写

来源:互联网 发布:中国网络经纪人头像 编辑:程序博客网 时间:2024/06/13 07:04
void init_daemon(void)
{
    int pid;
    int i;
    if(pid=fork())
        exit(0);        //是父进程,结束父进程
    else if(pid< 0)
        return(1);
    setsid();           //第一子进程成为新的会话组长和进程组长


    //并与控制终端分离
    if(pid=fork())
        exit(0);        //是第一子进程,结束第一子进程
    else if(pid< 0)
        exit(1);


    //是第二子进程,继续
    //第二子进程不再是会话组长
    //for(i=0;i< NOFILE;++i)  //关闭打开的文件描述符
    //  close(i);


    chdir("/");      //改变工作目录到/
    umask(0);           //重设文件创建掩模
    return;

}


int main(void)

{

signal(SIGCHLD, SIG_IGN);

init_daemon();

}

原创粉丝点击