编写守护进程

编写守护进程:

守护进程是Linux的后台服务进程,它是一个生存期比较长的进程,,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。

创建守护进程步骤如下:

(1)创建子进程,父进程退出

完成这一步后子进程变成了后台进程,给用户感觉是已经执行完了。父进程退出后,子进程就成为一个孤儿进程。在Linux中,每当系统发现一个孤儿进程,就会自动由1号进程(init进程)收养,就会成为init进程的子进程

(2)在子进程中创建新对话

通过setsid()函数创建新的会话,自己并担任此会话组的组长,此时,该进程已经摆脱原会话的控制,摆脱原进程组的控制,摆脱原终端的控制,并完全独立于其它进程

会话:会话组是一个或多个进程组的集合,通常一个会话开始于用户登录,终止于用户退出;或者说是开始于终端打开,结束于终端关闭,会话期的第一个进程称为会话组长。

(3)改变当前目录

为了使我们所创建的守护进程能够长久的运行,而不受其它原因的影响,有必要将当前的目录换成其它的路径,如”tmp”,使用函数 chdir();

(4)重设文件权限掩码

文件权限码是用来屏蔽文件权限的对应位,常用八进制表示,将文件权限掩码设置为0,可以增强该守护进程的灵活性。设置文件权限掩码的函数是umask(0),参数通常是0

(5)关闭文件描述符

由fork函数新建的子进程会从父进程那里继承一些已经打开的文件,而这些文件可能永远也无法被守护进程访问,所以为防止占用系统资源,将其关闭,通常关闭的是标准输入、标准输出和标准错误。

    close(0);
    close(1);
    close(2);
这样一个守护进程就创建起来了,我们可以在程序中让该守护进程将出错信息输出到某一文件中
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值