3

SimpleXMLRPCServer を使用して小さなアプリケーションを作成しようとしていますが、SIGTERM を受け取ったときにアプリケーションを適切に終了する方法を考えています。

理由は、アプリケーションの起動/停止スクリプトを後で作成し、停止する前にさまざまなことを実行させたいためです。

私の現在のコードは次のとおりです。

import SimpleXMLRPCServer
import signal
import sys

if __name__ == "__main__":
    print "setting up xmlrpc server"
    server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8000))

    def signal_handler(signum, frame):
        print "received signal"
        server.server_close()

        # perform clean up, etc. here...

        print "exiting, gracefully"
        sys.exit(0)

    # signals
    signal.signal(signal.SIGTERM, signal_handler)
    signal.signal(signal.SIGHUP, signal_handler)
    signal.signal(signal.SIGINT, signal_handler)

    print "serving forever"
    server.serve_forever()

それは機能していますが、「正しい」方法で行っているかどうかはよくわかりません。考えやアイデアはありますか?

また、リッスンする必要がある他の信号はありますか?

4

0 に答える 0