红联Linux门户
Linux帮助

C语言编写linux下的守护进程

发布时间:2008-07-02 00:21:41来源:红联作者:Osllgre
利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。

在main函数中执行

init_daemon();//初始化为Daemon

就可以把进程变成守护进程

引用:
#include
#include
#include
#include
#include

void init_daemon(void)
{
int pid;
int i;

if(pid=fork())
exit(0);//是父进程,结束父进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第一子进程,后台继续执行

setsid();//第一子进程成为新的会话组长和进程组长
//并与控制终端分离
if(pid=fork())
exit(0);//是第一子进程,结束第一子进程
else if(pid< 0)
exit(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长

for(i=0;i< NOFILE;++i)//关闭打开的文件描述符
close(i);
chdir("/tmp");//改变工作目录到/tmp
umask(0);//重设文件创建掩模
return;
}
文章评论

共有 5 条评论

  1. tyx0905 于 2008-11-18 13:25:19发表:

    :0w45cd(1

  2. yorktown 于 2008-11-18 12:51:15发表:

    引用:
    原帖由 LinuxSpace 于 2008-11-3 22:55 发表
    #include
    #include 不知道有什么作用啊
    #include
    #include
    #include
    :0wl;l1 :0wl;l1

    无敌伪代码

  3. michrykitty 于 2008-11-05 18:54:57发表:

    include what?

  4. cwqing1973 于 2008-11-04 00:15:36发表:

    只要知道了原理,其实什么都很简单啊!只是你复制的程序代码可能少了复了一些东西。

  5. LinuxSpace 于 2008-11-03 22:55:55发表:

    #include
    #include 不知道有什么作用啊
    #include
    #include
    #include
    :0wl;l1 :0wl;l1