根据signal(7)的规定,SIGHUP用于检测控制终端的挂机或控制进程的死亡。
然而,我遇到了很多使用SIGHUP来重新加载配置的操作系统守护进程(服务)。这里有几个例子:hostapd,sshd,snort等。
这是实现重新加载的标准(或一般可接受的)方式吗?如果没有,有什么推荐的吗?
发布于 2015-02-05 01:29:27
SIGHUP作为终端关闭事件的通知对于守护进程来说没有意义,因为守护进程是从它们的终端分离的。所以系统永远不会把这个信号发送给他们。然后,守护进程通常会将其用于另一种含义,通常是重新加载守护进程的配置。这不是一条规则,只是一种约定。这就是为什么它没有记录在手册页中的原因。
请参阅维基百科中有关SIGHUP的条目,然后查看a longer description with implementation example
发布于 2013-09-27 21:49:11
根据我的经验,SIGHUP通常用于请求守护进程重新加载其配置。使用这个广为人知的技术遵循最小惊讶原则。您的用户可能遇到过执行此操作的守护进程,因此他们将立即理解SIGHUP对您的守护进程意味着什么。
https://stackoverflow.com/questions/19052354
复制相似问题