叉,父和子过程

时间:2011-11-28 23:04:24

标签: c linux

在C中,即使父命令退出,也可以无限期地使forked()进程生效吗?

我想要做的是,父进程分叉一个孩子,然后退出,孩子继续在后台运行,直到另一个进程向它发送一个终止信号。

4 个答案:

答案 0 :(得分:6)

是的,绝对有可能让孩子活着。其他响应者也是正确的;这就是“守护进程”或后台进程在Linux环境中运行的方式。

有人称之为“分叉和死亡”的方法。这是一个描述如何做的链接: http://wiki.linuxquestions.org/wiki/Fork_off_and_die

请注意,不仅仅是fork() - ing。关闭文件描述符以防止后台进程占用系统资源等。

答案 1 :(得分:4)

Kerrek是对的,这正是每个守护进程的实现方式。所以,你的想法很完美。

答案 2 :(得分:1)

有一个daemon库函数,非常容易使用。

答案 3 :(得分:1)

如果您愿意,daemon()函数调用并非没有限制 写一个表现良好的守护进程。请参阅 On Starting Daemons 作出解释。

简单地说:一个好的守护进程应该只在它准备好进行现场请求时才会显示,但是在它自己的PID下进行设置并打印启动错误