根据signal(7)
,SIGHUP
用于检测控制终端挂断或控制进程死亡。
但是,我遇到了很多SIGHUP
用于启动重新加载配置的 OSS 守护进程(服务)。这里有几个例子:hostapd
、sshd
等snort
。
这是实现重新加载的标准(或普遍接受的)方式吗?如果没有,有什么推荐的?
根据signal(7)
,SIGHUP
用于检测控制终端挂断或控制进程死亡。
但是,我遇到了很多SIGHUP
用于启动重新加载配置的 OSS 守护进程(服务)。这里有几个例子:hostapd
、sshd
等snort
。
这是实现重新加载的标准(或普遍接受的)方式吗?如果没有,有什么推荐的?
SIGHUP 作为关于终端关闭事件的通知对于守护进程没有意义,因为守护进程与其终端分离。所以系统永远不会向他们发送这个信号。然后,守护进程将它用于另一种含义是常见的做法,通常是重新加载守护进程的配置。这不是规则,只是一种约定。这就是为什么它没有记录在手册页中的原因。
请参阅SIGHUP的维基百科条目, 并从那里查看带有实现示例的更长描述
根据我的经验,SIGHUP 通常用于请求守护程序重新加载其配置。使用这种众所周知的技术遵循最小意外原则。您的用户可能遇到过执行此操作的守护程序,因此他们会立即了解 SIGHUP 对您的守护程序意味着什么。