我正在尝试使用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()
它正在运作,但我不太确定我是以“正确”的方式做到这一点。有什么想法或想法吗?
此外,还有其他任何我应该收听的信号吗?