3

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

4

1 回答 1

6

当用户从会话中注销时,与该会话关联的所有进程都将被终止。对于作为守护进程的进程,您不希望发生这种情况。解决方法是调用setsid。如果守护进程还不是进程组领导(它不会跟随上面执行的分叉),这将:

  1. 启动一个新会话,以守护进程作为会话领导者并且没有控制终端,并且
  2. 启动一个新的进程组,守护进程作为进程组的领导者。

这里

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

于 2013-05-19T19:34:53.467 回答