首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

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

打印文章

分享到:
利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。

  在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]

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章

  • C语言编程程序的内存如何布局
  • C语言编写linux下的守护进程
  • 在C++中创建持久对象
  • C++中类的数据成员的安全隐患
  • 经典c程序100例(91--100)
  • 经典c程序100例(81--90)
  • 经典c程序100例(71--80)
  • 经典c程序100例(61--70)
  • 经典c程序100例(51--60)
  • 经典c程序100例(41--50)
  • 经典c程序100例(31--40)
  • 经典c程序100例(21--30)
  • 经典c程序100例(11--20)
  • 经典c程序100例(1--10)
  • 实例解析C++/CLI的串行化
  • 用C语言编写Windows服务程序的五个步骤
  • 自定义类_string类
  • 关于拷贝构造函数和赋值运算符
  • 用c语言演绎“生命游戏”
  • c语言中时间陷阱的实现