如何优雅地退出python程序
一个单模的Python程序,启动之后要能够优雅地关闭。即当用户按Ctrl+C或者kill pid的时候,程序都能从容关闭。实现起来非常简单。
- is_running = True
-
- def onSigChld(signo, frame):
- global is_running
- pid, status = os.waitpid(-1, os.WNOHANG)
- if pid:
- is_running = False
- pass
-
-
- def onSigInt(signo, frame):
- global is_running
- is_running = False
- pass
-
-
- def onSigTerm(signo, frame):
- global is_running
- is_running = False
- pass
-
-
- def test():
- global is_running
- while is_running:
- time.sleep(1)
- print "."
- print "App exit gracefully."
- sys.exit(0)
- pass
-
-
- if __name__ == "__main__":
-
- signal.signal(signal.SIGCHLD, onSigChld)
-
-
- signal.signal(signal.SIGINT, onSigInt)
- signal.signal(signal.SIGTERM, onSigTerm)
-
- test()