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()
それは機能していますが、「正しい」方法で行っているかどうかはよくわかりません。考えやアイデアはありますか?
また、リッスンする必要がある他の信号はありますか?