守护进程

        一个进程主要关系有:  会话组、进程组、父子进程关系等。
        通常,在同一控制台下执行、运行的程序属于同一会话组;父子进程属于同一进程组;一个会话组可包含多个进程组。

        守护进程(精灵进程),顾名思义,就像护花使者一个样在背后默默支持着他的花儿;也像父亲一直保卫着,守护着孩子们的成长,

        当一个进程成为孤儿进程之后,再改变此孤儿进程的会话组、进程组,然后再赋予它特殊使命(在后台孜孜不倦的完成莫特定功能),就可以说此进程为守护进程。

 

        一个普通进程成为守护进程的过程:
        1.让普通进程的父进程先于它退出,此普通进程将被1号进程收养,成为孤儿进程;
        2.用setpgid或setsid改变此孤儿进程关系;
           当一个进程成为孤儿进程后,可以用 setpgid() 可以设置进程组ID为自己,但会话组不会变;
           当一个进程成为孤儿进程后,用setsid设置会话组为自己,同时进程组也会变为自己;他的子进程也会跟随变动。
        3.此时的进程程摆脱了原会话的控制;摆脱了原进程组的控制;摆脱了原控制终端的控制;
           此时的进程即为守护进程,在后台运行,可以让它周期性的执行特殊任务。

 

        下面这个程序是一个守护进程监控一个子进程,一旦这个子进程退出,守护进程会将它拉起。

 

//主程序

#include <unistd.h>
#include &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值