作为systemdtmuxdaemon()关于编辑的探讨的一部分,我注意到只有FreeBSD版本daemon()libc图书馆呼叫才会忽略SIGHUP sigaction(2),而不是OpenBSD或glibc/misc/daemon.c。为什么?
发布于 2016-05-30 09:02:07
我追踪到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暂时被忽略。
https://unix.stackexchange.com/questions/286423
复制相似问题