在创建守护程序进程时离开调用setsid()有什么影响?

时间:2013-05-19 19:31:15

标签: c linux fork daemon

守护进程时不调用setsid()会有什么危险?

1 个答案:

答案 0 :(得分:6)

  

当用户从会话中注销时,与该会话关联的所有进程都将被终止。对于作为守护进程的进程,您不希望发生这种情况。解决方案是调用setsid。如果守护程序不是进程组负责人(它不会遵循上面执行的分支),那么这将:

     
      
  1. 启动一个新会话,守护进程为会话负责人,没有控制终端,
  2.   
  3. 启动一个新的流程组,将守护程序作为流程组负责人。
  4.   

来自here

所以基本上,如果你没有给它一个新的会话ID,它可能会被无意中杀死。