基本信号:
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)
结果: