您的位置:首页 > 其它

生成守护进程

2012-05-18 10:19 134 查看
/*setid.c*/
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
//要创建守护进程,但是守护进程不能为程序的第一个进程,该进程不能为进程组的leader
int main (void)
{
//首先fork一个子进程作为setsid的leader进程
pid_t p = fork();
if (p < 0) {
perror("fork error");
exit(1);
}

//发现是父进程就直接退出
if (p != 0) {
exit(1);
} else {
//在子进程处创建session_id
setsid();
}

/*
* 将文件描述符0,1,2重新定位到/dev/null,切换文件访问目录到’/‘根目录下
* 同样的操作被一个函数包装:
* chdir(“/”)
* close(0)
* open("/dev/null", O_RDWR)
* dup2(0, 1)
* dup2(0, 2)
*/
daemon(0, 0);
while(1);   //不断的穷忙
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: