许多Unix程序接受诸如USR1
和的信号USR2
。例如,要即时升级Nginx的可执行文件,请发送kill -USR2
。
我知道这USR1
是一个“用户定义”的信号,这意味着创建该程序的任何人都可以使用它来表示“关闭”或“转储日志”或“打印foo千次”或其他任何方式。但是我不明白为什么他们必须使用这个任意名称。为什么不kill -UPGRADE
,还是kill -GRACEFUL_SHUTDOWN
?Unix仅允许特定信号吗?
在我们讨论它的同时,Nginx还使用以下信号(请参阅文档):
- TERM,INT:快速关机
- 退出:正常关机
- HUP:
- 配置重载
- 使用新配置启动新工作进程
- 正常关闭旧工作进程
- USR1:重新打开日志文件
- USR2:即时升级可执行
- WINCH:正常关闭工作进程
UP?绞盘?这些名字的原因是什么?在哪里可以了解更多信息?