我已经完成fork
,然后是exec
,但我不知道如何在后台启动它。
我应该在exec
之后使用参数吗?如果是这样,那是什么?
答案 0 :(得分:2)
如果您只想使用daemon()
来处理流程。
如果你想要产生一个过程然后背景本身第一次使用fork()
并在第一个孩子内部再次呼叫fork()
,让第二个孩子打电话exec*()
以使该过程成为背景。让第一个孩子的初始父母wait()
。
当第二个孩子的父母(流程fork()
ed 1st)去世时,exec*()
ed过程将由init
收集。
注意:上面的模式有时被称为“ double -forking ”。另见:Why fork() twice(及其中的链接)
另一组有趣的答案是:Linux: Difference between forking twice and daemon(ise)