微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python 信号捕获处理 异常终止

 基本信号:

import signal
 
signal.SIGABORT
signal.SIGHUP  # 连接挂断
signal.SIGILL  # 非法指令
signal.SIGINT  # 连接中断
signal.SIGKILL # 终止进程(此信号不能被捕获或忽略)
signal.SIGQUIT # 终端退出
signal.SIGTERM # 终止
signal.SIgalRM  # 超时警告
signal.SIGCONT  # 继续执行暂停进程

示例:test.py 

signal.signal(signalnum,handler)     设置信号处理的函数

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import signal,time
import sys
 
def term_sig_handler(signum,frame):
    print 'catched singal: %d' % signum
    sys.exit()
 
#直接执行ctrl+c
if __name__ == '__main__':
    signal.signal(signal.SIGTERM,term_sig_handler)   #kill pid
    signal.signal(signal.SIGINT,term_sig_handler)     #ctrl -c
    # signal.signal(signal.SIGKILL,term_sig_handler)  #kill -9 pid   这个信号,无法被捕捉或者忽略
    while True:
        print 'hello'
        time.sleep(3)

结果:

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐