python捕获信号退出_[python]如何处理python程序的主动退出问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
文章来源
挑战自我博客:http://www.tiaozhanziwo.com/archives/688.html
1、遇到的问题简述
当一个python程序所需要的运行时间很长,或者是在多线程python程序中,如果想要立即退出的话,会遇到各种各样的问题,有时候根本无法退出,除非你关闭对应的程序运行客户端。
2、解决办法
近期在完善TZ-SCAN程序时,由于程序包含了多个模块,在运行的时候根本无法停止下来,一般我在程序运行的时候想要把程序停止,狂按ctrl + c都不行,除非我直接关闭cmd控制台,今天国庆节,睡了个懒觉起来继续改一改这个程序,完美地解决了这个问题,下面把这个过程记录下来。
2.1、关于signal库的介绍
要想使用signal库,首先头部必须导入该库文件
import signal
关于signal的几个常用信号类型:
SIGINT 终止进程 中断进程,不可通过signal.signal()捕捉(相当于Ctrl+C)
SIGTERM 终止进程 软件终止信号,可通过signal.signal()捕捉(默认信号,当os.kill()没有指明信号类型时,默认的是该信号)
SIGKILL 终止进程 杀死进程,不可捕捉(相当于linux下的kill命令,windows下使用会抛出异常)
SIGALRM 闹钟信号 可以通过signal.alarm()和os.kill()发送该信号,可通过signal.signal()捕捉
SIGQUIT 退出进程 和SIGTERM类似,可通过signal.signal()捕捉
2.2、TZ-SCAN中的应用实例
简单地把TZ-SCAN中的实例抽象出来
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import signal
import os
import time
import sys
def quit(signum, frame):
print '\nYou choose to stop me!!'
sys.exit()
signal.signal(signal.SIGINT, quit)
signal.signal(signal.SIGTERM, quit)
while 1:
print 'id: ',os.getpid()
time.sleep(2)
python捕获信号退出_[python]如何处理python程序的主动退出问题相关推荐
- python signal模块作用_如何理解python中信号Signal?
信号signal 是python进程间进行信号发送的一种机制,其原理是操作系统对进程的控制,是一种程序中断一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 那么singanl到底有什么用呢 ...
- python连续输入直到回车退出_详解Python实现按任意键继续/退出的功能
前言 要实现该功能,需要的就是暂停程序.等待并捕捉用户的一个键盘输入,然后继续执行.Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux. msvcrt中的 ge ...
- python 提示按任意键退出_详解Python实现按任意键继续/退出的功能
前言 要实现该功能,需要的就是暂停程序.等待并捕捉用户的一个键盘输入,然后继续执行.Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux. msvcrt 中的 g ...
- pyqt5 不报错退出_最新版本Python图形化开发环境Anaconda(Python3.7) +PyQT5+Eric6
Anaconda是完全免费的企业级的Python发行大规模数据处理.预测分析和科学计算工具.Anacoda是Python科学技术包的合集,所以不同的包所遵循的协议不一样.PyQt5与Eric6是众所周 ...
- python脚本转二进制_使用此Python脚本在Base94中编码二进制文件
python脚本转二进制 人类以许多不同的方式传递信息. 在互联网上,主要格式是文本,这就是您阅读本文的方式. 但是,Internet上还有其他数据,例如图像和声音文件等. 在您意识到HTTP / 1 ...
- python实现数据可视化_使用Matplotib python实现数据可视化
python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...
- python gui开发工具_深入解析Python,透析应用开发,涵盖9大应用领域的Python框架...
前言 当前,Python 已经成为最流行的程序设计语言之一,被越来越多的人作为首选语言来学习和应用.作为一种解释型的语言,Python具有内置的高级数据结构和简单有效的面向对象编程机制.同时,其语法简 ...
- python贪吃蛇控制台_如何用Python写一个贪吃蛇AI
前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
- python老鼠书名字_芜湖学习python公司推荐
芜湖学习python公司推荐 苏州翔锐信息科技有限公司,成立于2011年,是一家人工智能教育公司,目前团队规模200+人,覆盖用户已超600万.我们致力于借助科技的技术力量,以认知科学作基础,研究人的 ...
最新文章
- How to Use tomcat on Linux
- ansible部署tomcat及 include机制
- OpenCV图像处理使用笔记(一)——使用鼠标选取任何形状的ROI
- Python实训day08pm【面试和职场的经验分享】
- OpenShift 4 - 安装 OpenShift 集群后如何删除节点或增加新节点
- mysql 连接编码_连接Mysql编码问题
- 美媒:中国可能引领“物联网”的进步
- 说你呢,装着JDK8,却孜孜不倦的写着 JDK6 的代码,写了3年了,JDK8的特性都没用过......
- 眉山市谷歌高清卫星地图下载
- 黑马程序员全套Java教程_Java基础教程_API(十四)
- Xp系统优化 预读文件(8)
- 中国第一程序员求伯君,WPS之父,雷军也佩服的人
- 小虎电商浏览器:店透视应该如何查黑号?
- 使用SyncNavigator轻松实现数据库异地同步、断点续传、异构同步
- firefox Chrome浏览器redux devTools调试工具
- 吃什么对眼睛好 你吃对了吗
- Android的变化过程~
- linux删除screen命令,Linux screen命令
- DSP28335下程序提示低功耗模式
- Bundle与Intent机制,Intent显式/隐式意图,传递参数及参数序列化,各种跳转(如打开浏览器),Intent的Size