我正在尝试使用 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()
它正在工作,但我不太确定我是否以“正确”的方式进行操作。有什么想法或想法吗?
另外,还有其他我应该听的信号吗?