当前位置: 技术问答>linux和unix
(菜鸟飞飞)问个关于守护进程的问题
来源: 互联网 发布时间:2016-09-08
本文导语: 看到网上有人这么说: 1. 在后台运行 为避免挂起控制终端将Daemon放入后台执行。方法是在进程中调用fork使父进程终止,让Daemon在子进程中后台执行。 问题:既然创建子进程之后又终止了父进程,而子进程不是继...
看到网上有人这么说:
1. 在后台运行
为避免挂起控制终端将Daemon放入后台执行。方法是在进程中调用fork使父进程终止,让Daemon在子进程中后台执行。
问题:既然创建子进程之后又终止了父进程,而子进程不是继承了父进程的全部资源么,那么干嘛创建子进程,直接用父进程不就好了么?
1. 在后台运行
为避免挂起控制终端将Daemon放入后台执行。方法是在进程中调用fork使父进程终止,让Daemon在子进程中后台执行。
问题:既然创建子进程之后又终止了父进程,而子进程不是继承了父进程的全部资源么,那么干嘛创建子进程,直接用父进程不就好了么?
|
假如父进程是d1, d1创建了一个子进程d2,
那么,如果d1没有结束,d2的父进程就是d1
如果d1结束而d2没有结束,那么d2就像婴儿一样的被init进程领走(d2的父进程是init进程)
说白了,绕了这么一大圈,就是为了让init把d2领走
那么,如果d1没有结束,d2的父进程就是d1
如果d1结束而d2没有结束,那么d2就像婴儿一样的被init进程领走(d2的父进程是init进程)
说白了,绕了这么一大圈,就是为了让init把d2领走
|
终止父进程,是为了让子进程的父进程是进程号为1的进程,这样才不会使那个子进程被终止掉!!!