`
jamie.wang
  • 浏览: 339186 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

python 捕捉退出事件

阅读更多

最近写了个python脚本,在服务器上运行,经常莫名其妙的退出,也不知道原因,后面查了资料得到下面两个方法去捕捉退出的发生,一个是捕捉kill信号,另一个是注册atexit函数

例子:

 

import os
import sys
import time
import atexit
import signal
import traceback

def term_sig_handler(signum, frame):
    print 'catched singal: %d' % signum
    sys.exit()

@atexit.register
def atexit_fun():
    print 'i am exit, stack track:'

    exc_type, exc_value, exc_tb = sys.exc_info()
    traceback.print_exception(exc_type, exc_value, exc_tb)

if __name__ == '__main__':
    # catch term signal
    signal.signal(signal.SIGTERM, term_sig_handler)
    signal.signal(signal.SIGINT, term_sig_handler)
    while True:
        print 'hello'
        time.sleep(3)

输出:

 

hello
hello
hello
hello
hello
hello
hello
catched singal: 15
i am exit, stack track: None
 

注意:atexit_fun不能在main之后,不然不会执行

 

分享到:
评论

相关推荐

    实现python版本的按任意键继续/退出

    某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,主要还是Linux下的。 要实现该...

    详解Python实现按任意键继续/退出的功能

    要实现该功能,需要的就是暂停程序、等待并捕捉用户的一个键盘输入,然后继续执行。Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux。 msvcrt 中的 getch() 方法 能够帮助在 Windows 下实现...

    利用电脑内置摄像头对动态物体进行隐秘捕捉

    本资源为python代码,利用电脑内置摄像头对动态物体进行隐秘的捕捉(无窗口视频显示),捕捉照片保存在同目录下的motion_capture_image文件夹中,执行后可按Q或q退出。初衷为揪出老鼠真面目用,实现较为初级简单,...

    python爬虫1688一件代发电商工具(二)-抓取商品详情页价格库存运费信息(selenium)

    根据商品id指定需要抓取的商品范围,抓取指定商品详情页价格、库存、运费信息,存入数据库作数据分析和参考 ...3.程序运行中途报错,可能是出现滑动验证条导致页面捕捉不到元素,中途手动完成验证即可

    拾色器Python源码

    一个拾色器(Color Picker)的Python项目可以用于从屏幕上捕捉像素颜色,并显示该颜色的RGB值。以下是一个简单的描述: 导入相关库:首先需要导入必要的Python库,如pyautogui(用于截取屏幕像素颜色)、tkinter...

    Python开发的新版SCU教务系统选课小助手V1.0

    所以我在每一步都增加了异常捕捉,如果出现异常就退出当前选课循环,进入新的选课过程中 避免了因服务器的原因而导致被请喝 Pyhton 本脚本可适用于Python3.6环境下,不支持Python2环境 依赖安装 就三个依赖库就...

    python编程进阶之异常处理用法实例分析

    之前用Java的时候,在容易出错的地方我们经常使用try…catch或者try…catch…finally来捕捉和显示异常,在python中很高兴地发现它也有这样的机制。 try..except 这个用于当异常出现的时候,用except从句来处理异常,...

    python3.6.3+opencv3.3.0实现动态人脸捕获

    本文实例为大家分享了python实现动态人脸捕获的具体代码,供大家参考,具体内容如下 步骤 载入cv2 捕获摄像头 获取第一帧图像 定义人脸识别信息 开始循环 对第一帧图像进行识别 标示脸部特征和方框 显示帧 ...

    notebook:我的技术笔记本〜

    使用signal.SIGALRM在限定时间后退出进程 捕捉用户的Ctrl + C 使用signal.SIGALRM实现定时器 使用pdb进行调试 使用Python开发阿里云函数计算初步服务 修复gbk编码的文件名 破解RSA!破解短长度密钥的RSA加密 初步与...

    Pc-Monitor:带有cam snap的按键监控器应用程序将照片发送到您的电子邮件

    该软件将监视启动后的状态,监视按键和键盘的状态,一旦检测到某个键,它将捕捉照片并将其发送到您的配置电子邮件中。 该应用程序仅接受gmail,如果您的gmail未配置为第三方应用程序,请按照以下说明进行操作。 ...

    snappyzones:基于Microsoft FancyZonesLinux窗口管理器

    用户还可以在区域之间向左/向右捕捉窗口。 如何使用: 活泼的区域可以从控制台命令来启动snappy或通过调用模块python -m snappyzones 。 这两种启动方法本质上是同义词。 首次使用时,我们需要配置我们的区域。 ...

    【09-异常处理】

    Python等,大都提供了异常处理机制。增加了异常处理机制后的程序有更好的容错性,更加健壮。 传统错误处理的缺陷 •传统错误处理机制,主要如下两个缺点:  –无法穷举所有异常情况:因为人类知识的...

Global site tag (gtag.js) - Google Analytics