课题中的一些词

守护进程(daemon)

在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。

操作

守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息不在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。

那么,如何编程将一个普通进程变身为一个守护进程呢?

1.fork()一个子进程

这一步保证生成的子进程即不是一个session的首进程,也不是一个进程组的首进程;为第二步作准备。

2.在子进程中,调用setsid

这个系统调用新建一个session,将子进程从原来的session中脱离出来,并且切断和控制终端的联系。

3.再次调用fork

经过第二步生成的子进程其实已经是一个守护进程了,但它同时还是新会话的首进程,这样的进程可以通过一定手段重新获取控制终端。所以此处fork的目的就是为了保证第二个子进程不是session的首进程,这样它永远都无法和控制终端发生任何的联系了。

4.为了慎重期间,对全部的文件描述符执行一次关闭操作。

如何有根据的判断一个后台进程是否是一个守护进程?

通过命令ps axo pid,ppid,stat,tty,sid,cmd 就可以看到该进程的各个指标,这样就可以判断了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值