FreeBSDでのみdaemon(3)がSIGHUPを無視するのはなぜですか?

FreeBSDでのみdaemon(3)がSIGHUPを無視するのはなぜですか?

〜のようにsystemd tmux daemon()Redditに関する議論、私はこれだけですFreeBSDバージョンdaemon() libcライブラリの呼び出し無視SIGHUP sigaction(2)、しかしオープンBSDまたはglibc/misc/daemon.c。なぜ?

ベストアンサー1

私は追跡したhttps://svnweb.freebsd.org/base?view=revision&revision=122442そしてhttps://bugs.freebsd.org/bugzilla/show_bug.cgi?id=25462

極端な場合もあるようです。SIGHUP signal配送時daemon()図書館から電話が来ました。fork(2)それから_exit(2)両親のhup配達(に従って_exit(2))そして、子プロセスを実行する親プロセスがすでにセッションリーダーである場合、子プロセスは次の説明に従って終了します。setsid(2)

呼び出し側がセッションリーダーの場合、これらの制限された場合に子プロセスが予期せず終了するのを防ぐために(この場合の完全なリストは上記のBugzillaにあります)、一時的に無視さSIGHUPれます。

おすすめ記事