Just enjoy programming

linux 守护进程编写规则

linux 守护进程编写规则

(1)首先要做的是调用umask将文件模式创建屏蔽字设置为0.由继承得来的文件模式创建屏蔽字可能会拒绝设置某些权限。
(2)调用fork,然后使父进程退出(exit).这样做实现了下面几点:第一,如果该守护进程是作为一条简单shell命令启动的,那么父进程终止使得shell认为这条命令已经执行完毕。第二,子进程继承了父进程的进程组ID,但具有一个新的进程ID,这就保证了子进程不是一个进程组的组长进程。这对于下面就要做的setsid调用是必要的前提条件。
(3)调用setsid以创建一个新会话,是调用进程:(a)成为新会话的首进程,(b)成为一个新进程组的组长进程,(c)没有控制终端。在有些人建议在此时再次调用 fork,并是父进程终止。第二个子进程作为守护进程继续运行。这样就保证了该守护进程不是会话首进程。
(4)将当前工作目录更改为根目录。
(5)关闭不再需要的文件描述符。这使守护进程不再持有从其父进程继承来的某些文件描述符。
(6)某些守护进程打开/dev/null使其具有文件描述符0,1,2.这样,任何一个试图读标准输入,写标准输出或标准出错的库例程都不会产生任何效果。

参考:UNIX环境高级编程

posted on 2011-06-29 21:50 周强 阅读(2159) 评论(1)  编辑 收藏 引用 所属分类: linux

评论

# re: linux 守护进程编写规则 2011-07-06 21:01 十三

这个也有一千多的阅读率~~好多啊~~~  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理