根据signal(7)
,SIGHUP
用于检测控制终端上的挂断或控制过程的死亡。
但是,我遇到了很多OSS守护进程(服务),其中SIGHUP
用于启动重新加载配置。以下是一些示例:hostapd
,sshd
,snort
等。
这是实现重新加载的标准(或通常可接受的)方式吗?如果没有,推荐什么?
答案 0 :(得分:28)
SIGHUP作为关于终端关闭事件的通知对守护进程没有意义,因为守护程序与其终端分离。因此系统永远不会向他们发送此信号。 然后,守护进程通常会将其用于其他含义,通常是重新加载守护进程的配置。 这不是一个规则,只是一种惯例。这就是为什么它没有记录在联机帮助页中。
查看SIGHUP的维基百科条目 从那里,a longer description with implementation example
答案 1 :(得分:3)
根据我的经验,SIGHUP通常用于请求守护进程重新加载其配置。使用这种众所周知的技术遵循最不惊讶的原则。您的用户可能遇到过这样做的守护进程,因此他们会立即了解SIGHUP对守护进程的意义。