Выход из приложения SimpleXMLRPCServer изящно
Я пытаюсь сделать небольшое приложение, используя 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()
Это работает, но я не совсем уверен, что делаю это "правильным" способом. Есть мысли или идеи?
Кроме того, есть ли другие сигналы, которые я должен слушать?