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