标签: c linux fork daemon
守护进程时不调用setsid()会有什么危险?
setsid()
答案 0 :(得分:6)
当用户从会话中注销时,与该会话关联的所有进程都将被终止。对于作为守护进程的进程,您不希望发生这种情况。解决方案是调用setsid。如果守护程序不是进程组负责人(它不会遵循上面执行的分支),那么这将: 启动一个新会话,守护进程为会话负责人,没有控制终端, 启动一个新的流程组,将守护程序作为流程组负责人。 醇>
当用户从会话中注销时,与该会话关联的所有进程都将被终止。对于作为守护进程的进程,您不希望发生这种情况。解决方案是调用setsid。如果守护程序不是进程组负责人(它不会遵循上面执行的分支),那么这将:
来自here
所以基本上,如果你没有给它一个新的会话ID,它可能会被无意中杀死。