如何优雅地退出python程序

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

[python] view plaincopy print?
  1. is_running = True
  2. def onSigChld(signo, frame):
  3. global is_running
  4. pid, status = os.waitpid(-1, os.WNOHANG)
  5. if pid:
  6. is_running = False
  7. pass
  8. def onSigInt(signo, frame):
  9. global is_running
  10. is_running = False
  11. pass
  12. def onSigTerm(signo, frame):
  13. global is_running
  14. is_running = False
  15. pass
  16. def test():
  17. global is_running
  18. while is_running:
  19. time.sleep(1)
  20. print "."
  21. print "App exit gracefully."
  22. sys.exit(0)
  23. pass
  24. if __name__ == "__main__":
  25. # 子进程退出后向父进程发送的信号
  26. signal.signal(signal.SIGCHLD, onSigChld)
  27. # 主进程退出信号
  28. signal.signal(signal.SIGINT, onSigInt)
  29. signal.signal(signal.SIGTERM, onSigTerm)
  30. test()

如何优雅地退出python程序相关推荐

  1. 退出python命令行-在cmd命令行里进入和退出Python程序的方法

    在cmd命令行里进入和退出Python程序的方法 进入: 直接输入python即可,如图所示 退出: 1:输入exit(),回车 2:输入quit(),回车 3:输入ctrl+z,回车 以上这篇在cm ...

  2. 如何退出python程序_python怎么退出程序

    python程序退出方式[sys.exit() os._exit() os.kill() os.popen(...)]. 1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也 ...

  3. Python 结束程序——如何在终端中退出 Python 程序

    您可以在终端中执行 Python 代码,就像在 VS Code.Atom 等 IDE 中一样.您可以在 Windows 和 Unix 操作系统(如 Linux 和 macOS)中执行此操作. 在本文中 ...

  4. 优雅地记录Python程序日志2:模块组件化日志记录器

    本文摘自:https://zhuanlan.zhihu.com/p/32043593 本篇将会涉及: logging的各个模块化组件 构建一个组件化的日志器 logging的模块组件化 在上一篇文章中 ...

  5. python exe enter退出,Python程序退出处理程序(atexit)

    Python标准发行版中的atexit模块具有两个功能-register()和unregister().这两个函数均以某个现有函数作为参数.当解释器会话正常终止时,注册的功能会自动执行. 如果注册了多 ...

  6. linux 退出java,linux kill命令下如何优雅的退出java程序

    实现SignalHandler kill命令常用信号(之后代码会用到):HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 ...

  7. Python工作笔记006---在centos命令行里进入和退出Python程序

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 进入: 直接输入python即可,如图所示 退出: 1:输入exit(),回车 2:输入quit(),回车 3:输入ct ...

  8. python代码执行过程记录_优雅的记录Python程序日志

    1 本篇概要 logging模块的调用: 保存log日志为文件: 调整输入日志等级: 修改日志消息格式: 2 前言 在使用Python编写程序的过程中,我们经常使用print()函数打印一些信息到控制 ...

  9. java 优雅退出_java – 优雅地退出应用程序?

    如果您没有其他设计更改选择,那么您可能需要的是JVM关闭挂钩,可以添加它以在调用System.exit时运行一段代码. Shutdown Hooks are a special construct t ...

最新文章

  1. SQL 左外连接,右外连接,全连接,内连接
  2. NLP 笔记: 序列标注与BIO标注
  3. 通过PyMySQL连接MySQL
  4. hdu 2064汉诺塔III 递推
  5. hive 如何将数组转成字符串_hive 将hive表数据查询出来转为json对象和json数组输出...
  6. model Ensemble
  7. iOS 五种传值方式
  8. caffe安装系列——综述
  9. mac中的echo颜色输出
  10. Linux 下 ls -l 命令执行显示结果的每一列含义
  11. 多波段 “均值标准距”的计算
  12. docker 执行py文件
  13. 浅析webpack的原理
  14. java 实现中文转化为拼音代码 汉字转化为拼音源码分享
  15. java开发的应用的有哪些
  16. Node.js入门(一)
  17. 阿里云服务器mysql开放远程连接步骤
  18. 关于ios低版本在app store下载软件时由于版本低导致不能下载的解决办法
  19. 解决:android 开发 WIFI 功能 密码输入正确时监听的问题
  20. 佳能Canon imageRUNNER C6000 一休机驱动

热门文章

  1. 神经网络学习到的是什么?(Python)
  2. 10大经典排序算法,20+张图就搞定
  3. 激发企业大“智慧” | 深度赋能AI全场景 揭秘你不知道的移动云
  4. 2个月做出一款AI项目?这些学生在DeeCamp上决出两个总冠军
  5. 中国开源大爆发进行时,你没掉队吧?
  6. 性能提升3倍的树莓派4,被爆设计缺陷!
  7. 媒体智能应用落地靠5G,视频社交需要想象力
  8. 300道Python面试题,备战春招!
  9. 《请不要回应外星人2019》
  10. AI看电影看哭了...MIT科学家正在教AI感受电影中的喜怒哀乐