如何优雅地退出python程序
如何优雅地退出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()
如何优雅地退出python程序相关推荐
- 退出python命令行-在cmd命令行里进入和退出Python程序的方法
在cmd命令行里进入和退出Python程序的方法 进入: 直接输入python即可,如图所示 退出: 1:输入exit(),回车 2:输入quit(),回车 3:输入ctrl+z,回车 以上这篇在cm ...
- 如何退出python程序_python怎么退出程序
python程序退出方式[sys.exit() os._exit() os.kill() os.popen(...)]. 1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也 ...
- Python 结束程序——如何在终端中退出 Python 程序
您可以在终端中执行 Python 代码,就像在 VS Code.Atom 等 IDE 中一样.您可以在 Windows 和 Unix 操作系统(如 Linux 和 macOS)中执行此操作. 在本文中 ...
- 优雅地记录Python程序日志2:模块组件化日志记录器
本文摘自:https://zhuanlan.zhihu.com/p/32043593 本篇将会涉及: logging的各个模块化组件 构建一个组件化的日志器 logging的模块组件化 在上一篇文章中 ...
- python exe enter退出,Python程序退出处理程序(atexit)
Python标准发行版中的atexit模块具有两个功能-register()和unregister().这两个函数均以某个现有函数作为参数.当解释器会话正常终止时,注册的功能会自动执行. 如果注册了多 ...
- linux 退出java,linux kill命令下如何优雅的退出java程序
实现SignalHandler kill命令常用信号(之后代码会用到):HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 ...
- Python工作笔记006---在centos命令行里进入和退出Python程序
技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 进入: 直接输入python即可,如图所示 退出: 1:输入exit(),回车 2:输入quit(),回车 3:输入ct ...
- python代码执行过程记录_优雅的记录Python程序日志
1 本篇概要 logging模块的调用: 保存log日志为文件: 调整输入日志等级: 修改日志消息格式: 2 前言 在使用Python编写程序的过程中,我们经常使用print()函数打印一些信息到控制 ...
- java 优雅退出_java – 优雅地退出应用程序?
如果您没有其他设计更改选择,那么您可能需要的是JVM关闭挂钩,可以添加它以在调用System.exit时运行一段代码. Shutdown Hooks are a special construct t ...
最新文章
- SQL 左外连接,右外连接,全连接,内连接
- NLP 笔记: 序列标注与BIO标注
- 通过PyMySQL连接MySQL
- hdu 2064汉诺塔III 递推
- hive 如何将数组转成字符串_hive 将hive表数据查询出来转为json对象和json数组输出...
- model Ensemble
- iOS 五种传值方式
- caffe安装系列——综述
- mac中的echo颜色输出
- Linux 下 ls -l 命令执行显示结果的每一列含义
- 多波段 “均值标准距”的计算
- docker 执行py文件
- 浅析webpack的原理
- java 实现中文转化为拼音代码 汉字转化为拼音源码分享
- java开发的应用的有哪些
- Node.js入门(一)
- 阿里云服务器mysql开放远程连接步骤
- 关于ios低版本在app store下载软件时由于版本低导致不能下载的解决办法
- 解决:android 开发 WIFI 功能 密码输入正确时监听的问题
- 佳能Canon imageRUNNER C6000 一休机驱动