daemon


linux下常见的服务名带d结尾的:inetd、httpd、等都是守护进程,d字符表示daemon。
普通进程的控制端依赖:
每一个从某终端开始的进程都会依赖这个终端,也就是这个进程的控制端。当控制端被关闭时候进程一般也会被关闭。
daemon进程编写步骤:
    1:创建一个子进程,同事关闭父进程。该子进程就会变成init进程的子进程。
    2:调用setsid创建一个新会话并成为新会话组长。(保证本身不是进程组组长--子进程一定不会是组长)
        让进程摆脱原会话、原进程组、以及原终端控制;让进程独立起来,脱离所有其他进程。
    3:把当前工作目录切换到根目录:chdir
    4:设置文件掩码为0 (umask):子进程都会从父进程那里继承文件掩码,当创建文件时,默认使用的是继承的文件
         掩码;所以对于daemon来说根本不知道它的文件掩码是什么,为避免麻烦(权限问题)我们应该重置文件掩码。
         一般为0(不屏蔽用户任何操作)
    5:在写daemon一般会对终止进程或者对配置文件的改动进行相应的操作:或完成任务释放资源,或重新加载配置项
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值