0
我通过start-stop-daemon
将SIGTERM
信号发送到我的服务器。正如预期的那样,服务器在收到信号时关闭。现在我想在收到SIGTERM
后停止我的服务器10秒钟,然后关闭它。为了达到这个目的,我写了Python:覆盖默认的SIGTERM处理程序
def sigterm_handler(signum):
time.sleep(10)
sys.exit(0)
Class server(object):
.
.
def __call__()
signal.signal(signal.SIGTERM, sigterm_handler)
#some code
.
.
现在服务器在接收信号后永远不会等待10秒。一旦发送信号,它就会关闭(在记录器中检查)。
此外,以下消息在我的终端上停止10秒。
* Stopping Server:
我觉得我的代码是不是能告诉蟒蛇的信号被处理,所以,默认处理程序也正在跟我一起的处理程序调用。任何想法需要做什么?
感谢它的工作。关于“关机模式”,代码似乎在我介绍它后立即停止工作(更正了“shutdownMode”,“shutdown_mode”错字)。即使在sigterm_handler的开头创建了shutdown_mode日志,也停止了该功能。 – akipro
@akipro谢谢。 “shutdown_mode”在缺少“全局”声明时不起作用。它现在应该工作。 – jofel
啊......应该已经注意到了。再次感谢。 – akipro