在C中,即使父命令退出,也可以无限期地使forked()进程生效吗?
我想要做的是,父进程分叉一个孩子,然后退出,孩子继续在后台运行,直到另一个进程向它发送一个终止信号。
答案 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下进行设置并打印启动错误