说说守护进程
时间:2016-12-30作者:华清远见
守护进程又称精灵进程(daemon),一般在系统启动时开始,而在系统关闭时终止。没有控制终端,运行在后台。在linux系统中有很多这类进程。 下面说一下如何创建一个守护进程。
(1) 使用umask修改文件的屏蔽字,为文件赋予跟多的权限,因为继承来的文件可能某些权限被屏蔽,从而失去某些功能,如读写。 下面使用一个例程说一下这个过程。
#include <stdio.h>
int main()
pid_t pid;
//XXX step 1:set umask
//XXX setp 2:fork
//XXX step 3:setsid
//XXX step 4:chdir
//XXX step 5:close all open file descriptors
} 上面便是一个守护进程的创建过程,可是一些书或网络上写守护进程,会在第三步和第四步之间添加这样一点代码。
if((pid = fork()) < 0) 很多学生就会问,为什么要创建两次进程呢,这是因为第三步结束后,进程创建了一个新的会话组,并成为会话组长,而会话组长可能获得控制终端,如果获得了控制终端那么或这个进程就不是守护进程了。所以添加了这几句代码,让进程失去会话组长的身份,从而没有获得控制终端的权限。
发表评论
|