如何优雅地退出python程序

如何优雅地退出python程序


一个单模的Python程序,启动之后要能够优雅地关闭。即当用户按Ctrl+C或者kill pid的时候,程序都能从容关闭。实现起来非常简单。

[python]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. is_running = True  
  2.   
  3. def onSigChld(signo, frame):  
  4.     global is_running  
  5.     pid, status = os.waitpid(-1, os.WNOHANG)  
  6.     if pid:  
  7.       is_running = False  
  8.     pass  
  9.   
  10.   
  11. def onSigInt(signo, frame):  
  12.     global is_running  
  13.     is_running = False  
  14.     pass  
  15.   
  16.   
  17. def onSigTerm(signo, frame):  
  18.     global is_running  
  19.     is_running = False  
  20.     pass  
  21.   
  22.   
  23. def test():  
  24.     global is_running  
  25.     while is_running:  
  26.         time.sleep(1)  
  27.         print "."  
  28.     print "App exit gracefully."  
  29.     sys.exit(0)  
  30.     pass  
  31.   
  32.   
  33. if __name__ == "__main__":  
  34.     # 子进程退出后向父进程发送的信号  
  35.     signal.signal(signal.SIGCHLD, onSigChld)  
  36.   
  37.     # 主进程退出信号  
  38.     signal.signal(signal.SIGINT, onSigInt)  
  39.     signal.signal(signal.SIGTERM, onSigTerm)  
  40.   
  41.     test()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值