免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 771 | 回复: 0
打印 上一主题 下一主题

守护进程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-08 10:54 |只看该作者 |倒序浏览

6.5.1  基本概念

  • 守护进程就是在后台执行, 没有控制终端或登录 Shell 的进程

6.5.2  实现方法
  • 关闭文件描述符: for (i=0; i ===============================================================================
        * 使用 setsid 设置为新会话的领头进程
        * 因为 setsid 要求调用进程不是会话的领头进程时才有效.
        * 因此, 首先可用 fork 派生, 并结束父进程.
        * 之后调用 setsid, 子进程成为新会话的领头进程, 从而与原有会话, 进程组, tty 脱离.
        * 但是, 为避免作为新会话领头进程的子进程在打开一个终端设备时, 拥有一个控制终端.
        * 再次派生, 并结束父进程, 可让子进程成为非会话领头进程.
    ---------------------------------------
        if (fork ())
            exit (0);
       
        setsid ();
        if (fork ())
            exit (0);
    ===============================================================================
  • 改变工作目录到根目录: chdir ("/")
  • 进程的 umask 设置为 0: umask (0)
  • 处理 SIGCHLD 信号, 为避免形成僵尸进程

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29346/showart_228114.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP