18 为了创建服务(守护程序),我们通过调用派生父级并使其退出,同时使子级成为会话领导者setsid()。此外,为什么要使用setsid()?我们的孤立进程由init(尽管并非在所有情况下)进程来处理。 为什么我们使用stsid()?setsid()与处理SIGHUP信号之间是否有任何关系。 daemon — 卡鲁 source
13 我们使用setsid()是因为如果我们只是杀死父母,那么孩子也会被杀死,setsid() 如果调用进程不是进程组负责人,则创建一个新会话。呼叫过程是新会话的负责人,新过程组的过程组负责人,没有控制终端。 父级是第一个流程组组长,杀死它-或杀死会话/终端-杀死组,这就是为什么我们要更换组长(并在其上创建新会话)的原因。 — ZN13 source 1 没错,但是它对SIGHUP信号有任何影响,因为我知道当控制终端丢失时发送该信号 — Kalu 2015年 7 当控制终端关闭时,父级将收到SIGHUP。这个孩子不会收到SIGHUP,因为它在新的会话中。 — ZN13