`
jamie.wang
  • 浏览: 344933 次
  • 性别: 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捕捉和模拟鼠标事件的方法 在日常编程工作中,有时候我们需要用到自动化工具来捕捉或模拟鼠标事件。本文将详细介绍如何使用Python中的`PyHook`和`PyWin32`两个模块来实现这一功能。 #### PyHook模块简介...

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

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

    Python期末试题题库完整.pdf

    Python语言的try-except语句可以捕捉异常,并执行相应的处理代码。 知识点总结: * Python语言的基本语法和数据类型 * Python语言的运算符和控制结构 * Python语言的函数定义和文件操作 * Python语言的错误处理 ...

    基于python中pygame箭头捕捉.rar

    "基于python中pygame箭头捕捉.rar"这个资源显然展示了如何利用pygame来实现一个动态的箭头跟随鼠标移动的功能。在这个项目中,我们可以学到以下几个关键知识点: 1. **pygame库的导入与初始化**:首先,我们需要...

    Python显示多路USB摄像头.zip

    在这个“Python显示多路USB摄像头”的项目中,我们主要关注的是如何利用Python编程来同时捕捉和显示来自多个USB摄像头的视频流。PyQT5是一个强大的Python GUI库,它允许开发人员创建复杂的用户界面,这在我们的场景...

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

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

    python 2.6 turial

    在“错误与异常”章节,教程深入分析了Python中的错误处理机制,包括语法错误、异常捕捉、自定义异常的定义以及清理动作的设定,帮助开发者构建更加健壮和稳定的程序。 #### Classes — 类 “类”章节介绍了面向...

    一文读懂python3中的所有33个关键字及其用法.pdf

    continue 是 Python 中的关键字,用于跳出当前循环,但不会退出整个循环。 10. def:函数定义 def 是 Python 中的关键字,用于定义函数。函数是 Python 中的基本组成部分,用于封装代码块。 11. del:删除变量 ...

    Nokia S60手机平台上的Python编程

    3. **捕捉和处理触摸事件**:接下来,需要设置一个循环来监听触摸事件,并调用之前定义的处理器函数。此外,还可以使用`appuifw.EvtHandler`来绑定特定类型的事件到对应的处理函数。 ```python appuifw.app.body ...

    python异常总结

    SystemExit异常通常是由sys.exit()函数引发的,它允许程序以指定的状态退出。 TypeError异常发生在操作或函数被应用于不合适的对象类型时,比如将字符串与整数进行数学运算。 UnboundLocalError是NameError的一个...

    Python教程(打印版 )

    - **try...except**:用于捕捉并处理异常。 - **finally**:无论是否发生异常都会执行的代码块。 **4.3 文件操作** - **打开文件**:使用`open()`函数。 - **读写操作**:`read()`、`write()`等方法。 - **关闭...

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

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

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

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

    python人脸识别签到系统

    - **多个人脸处理**:如果摄像头捕捉到多个人脸,系统应能正确处理并区分不同个体。 - **光照和角度变化**:考虑不同光照条件和人脸角度变化对识别效果的影响,可能需要引入光照归一化或3D建模技术。 - **实时...

    Python OpenCV实现鼠标画框效果

    3. 定义`get_image_roi`函数,用于捕捉用户选择的矩形框区域。 4. 实现`select_user_roi`函数,用于读取图像、调整图像大小,并获取用户选择的ROI。 5. 创建窗口并绑定鼠标回调函数,等待用户交互。 6. 用户通过鼠标...

    Python教程(原文)(20210930173746).pdf

    - Python的执行退出语句sys.exit(),用于结束Python脚本的执行; - Python的环境变量设置,例如/usr/local/bin/python,指出了Python解释器的可能安装位置; - Python的异常处理机制,try-except语句用于捕捉程序...

    拾色器Python源码

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

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

    Python是一种广泛使用的高级编程语言,以其清晰的语法和强大的库支持而闻名。在本次介绍中,将深入探讨如何利用Python的最新版本3.6.3以及开源计算机视觉库OpenCV的版本3.3.0来实现动态人脸捕获的功能。 OpenCV,...

    python题库100

    break 语句用于退出循环,而 continue 语句用于跳过当前循环体,继续执行下一个循环体。 3. 随机数生成:Python 中有多种方式来生成随机数,包括使用 random 模块和 randint 函数。random.randint(a, b) 函数用于...

    python的opencv打开摄像头.rar

    在Python编程领域,OpenCV(开源计算机视觉库)是一个强大的工具,用于图像处理和计算机视觉任务。本案例中,我们将探讨如何使用OpenCV库在Python中打开并操作电脑的摄像头。 首先,`demo.py`是包含实现这个功能的...

Global site tag (gtag.js) - Google Analytics