我正在尝试用python创建一个守护进程。我已经找到了following question,它有一些很好的资源,我现在正在关注它,但我很好奇为什么双分支是必要的。我在google上搜索了一下,找到了大量的资源,声称一个是必要的,但不是为什么。
有些人提到,这是为了防止守护进程获取控制终端。如果没有第二个分支,它怎么做到这一点呢?其后果是什么?
发布于 2009-05-19 07:32:27
摘自Bad CTK
在某些版本的Unix中,为了进入守护程序模式,你必须在启动时执行双分支。这是因为单分支不能保证从控制终端分离。
发布于 2009-05-19 07:33:55
根据斯蒂芬斯和拉戈的“Unix环境中的高级编程”,第二个分支更多的是一种建议,它是为了保证守护进程不会在基于System V的系统上获取控制终端。
发布于 2009-05-19 07:43:40
原因之一是父进程可以立即对子进程执行wait_pid(),然后将其抛在脑后。当孙子进程死亡时,它的父进程是init,它会等待()--并让它脱离僵尸状态。
结果是父进程不需要知道派生的子进程,它还使得从库等派生长时间运行的进程成为可能。
https://stackoverflow.com/questions/881388
复制相似问题