知行社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

知行社区 门户 技术 查看内容

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

2012-1-8 02:24| 发布者: 颠三倒四| 查看: 445| 评论: 0|原作者: 颠三倒四

摘要: 利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。  在main函数中执行  init_daemon();//初始化为Daemon  就可以把进程变成守护进程  #include#include#include#include#includevo ...
利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。

  在main函数中执行

  init_daemon();//初始化为Daemon

  就可以把进程变成守护进程
  
[code=c]
#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;
}
[/code]

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

相关分类



QQ|小黑屋|手机版|知行技术社区 ( 湘ICP备11020288号-1 )

GMT+8, 2020-4-5 11:05 , Processed in 0.010399 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部