现在的位置: 首页 > 综合 > 正文

守护进程之编程规则

2013年08月22日 ⁄ 综合 ⁄ 共 1346字 ⁄ 字号 评论关闭

 1. 概述

     守护进程也称精灵进程(daemon)是生成器较长的一种进程。因为他们没有控制终端,所以说它们是在后台运行的。

     我们可以ps命令来查看系统中各个进程的状态。

     #ps -auxj

     选项-a显示有其它用户所拥有的进程的状态。-x显示没有控制终端的进程状态。-u以用户的格式来显示进程的状态。-j显示与有关的信息:会话ID、进程ID、控制终端以及终端进程组ID。 常常这样用:ps -aux | grep rpc。

  2. 编程规则

     1). 首先要调用umask将文件模式创建屏蔽字设置为0。由继承得来的文件模式创建屏蔽可能会拒绝设置某些权限。

     2). 调用fork,然后是父进程推出(exit)。这样做的目的:一是如果该守护进程是作为一条简单shell命令启动的,那么父进程终止是的shell认为这条命令已经执行完毕;二是,子进程继承了父进程的进程组ID,但是具有一个新的进程ID,这就保证了子进程不是一个进程组的组长进程。是第三步的前提条件。

     3). 调用setsid以创建一个新会话。

     4). 将当前目录更改为根目录。从父进程继承过来的当前工作目录可能在一个装配文件系统中。如果守护进程的当前工作目录在一个装配文件系统中,那么该文件系统就不能被拆卸,这与装配文件系统的愿意不符。

     5). 某些守护进程打开/dev/null使其具有文件描述符0、1和2,这样,任何一个试图读标准输入、写标准输出或标准出错的库例程都不会产生任何效果。因为守护进程不与终端设备相关联,所以不能在终端设备输入或读入。

  3. 初始化一个守护进程

    

抱歉!评论已关闭.