签到

05月05日
尚未签到

共有回帖数 0

    李小主任

    等级:
    利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。

      在main函数中执行

      init_daemon();//初始化为Daemon

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

    [code=c]
    #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;
    }
    [/code]

    楼主 2016-10-12 12:32 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知