Por que usamos setsid() ao daemonizar um processo?

Por que usamos setsid() ao daemonizar um processo?

Para criar umserviço (daemon)bifurcamos o pai e fazemos com que ele saia enquanto tornamos o filho o líder da sessão chamando setsid(). Além disso, por que usamos setsid()? Nosso processo órfão é cuidado por init(embora não em todos os casos) processo.

Por que usamos setsid()? Existe alguma relação entre setsid()e manipulação SIGHUPde sinal?

Responder1

Usamos setsid()porque se apenas matarmos o pai, o filho também será morto, o setsid():

cria uma nova sessãose o processo chamador não for um líder de grupo de processos. O processo chamador é o líder da nova sessão, o líder do grupo de processos do novo grupo de processos e não possui terminal de controle.

O pai é o primeiro líder do grupo de processos, matá-lo - ou matar a sessão/terminal - mata o grupo, e é por isso que trocamos o líder (e criamos uma nova sessão enquanto estamos nisso).

informação relacionada