0

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に伝えることができないと思うので、デフォルトのハンドラーも私のハンドラーとともに呼び出されています。何をする必要があるか考えていますか?

4

1 に答える 1