最佳答案
许多 Unix 程序接受像 USR1
和 USR2
这样的信号。例如,要动态升级 Nginx 的可执行文件,您可以发送 kill -USR2
。
我理解 USR1
是一个“用户定义”的信号,这意味着创建程序的人可以使用它来表示“关闭”或“转储您的日志”或“打印 foo 一千次”或其他什么。但我不明白为什么他们一定要用这个武断的名字。为什么不是 kill -UPGRADE
或者 kill -GRACEFUL_SHUTDOWN
?Unix 只允许特定的信号吗?
同时,Nginx 还使用以下信号(参见 文件) :
HUP? WINCH? 这些名字的原因是什么? 我在哪里可以学到更多关于这方面的知识?