SIGTERM
経由でサーバーに信号を送信していますstart-stop-daemon
。予想どおり、シグナルを受信するとサーバーがシャットダウンします。SIGTERM
ここで、サーバーを受信後 10 秒間停止してからシャットダウンしたいと考えています。これを達成するために私は書いた
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:
私のコードは、シグナルが処理されていることをpythonに伝えることができないと思うので、デフォルトのハンドラーも私のハンドラーとともに呼び出されています。何をする必要があるか考えていますか?