Por que o SIGHUP é ignorado pelo daemon (3) apenas no FreeBSD?

2

Como parte da discussão systemd tmux daemon() no reddit Notei que é apenas a versão do FreeBSD de daemon() libc library call que ignora SIGHUP sigaction(2) , mas não OpenBSD ou glibc / misc / daemon.c. Por quê?

    
por cnst 30.05.2016 / 11:02

1 resposta

2

Eu localizei o link e link .

Parece haver alguns casos em que SIGHUP signal é entregue quando o daemon() faz um fork(2) seguido por um _exit(2) do pai, o que tornaria hup seja entregue (conforme _exit(2) ) e será encerrado o processo filho se o pai a partir do qual ele é executado já é o líder da sessão, conforme descrito em setsid(2) .

Para evitar o término involuntário da criança nestas circunstâncias limitadas, quando o chamador é o líder da sessão (lista completa quando é o caso no Bugzilla acima), o SIGHUP é temporariamente ignorado.

    
por 30.05.2016 / 11:02