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