29

根据signal(7)SIGHUP用于检测控制终端挂断或控制进程死亡。

但是,我遇到了很多SIGHUP用于启动重新加载配置的 OSS 守护进程(服务)。这里有几个例子:hostapdsshdsnort

这是实现重新加载的标准(或普遍接受的)方式吗?如果没有,有什么推荐的?

4

2 回答 2

41

SIGHUP 作为关于终端关闭事件的通知对于守护进程没有意义,因为守护进程与其终端分离。所以系统永远不会向他们发送这个信号。然后,守护进程将它用于另一种含义是常见的做法,通常是重新加载守护进程的配置。这不是规则,只是一种约定。这就是为什么它没有记录在手册页中的原因。

请参阅SIGHUP的维基百科条目, 并从那里查看带有实现示例的更长描述

于 2015-02-04T17:29:27.023 回答
4

根据我的经验,SIGHUP 通常用于请求守护程序重新加载其配置。使用这种众所周知的技术遵循最小意外原则。您的用户可能遇到过执行此操作的守护程序,因此他们会立即了解 SIGHUP 对您的守护程序意味着什么。

于 2013-09-27T13:49:10.503 回答