今天在搞个python的程序,需要在按下Ctrl + C 或者 kill 掉进程时,做一些程序终止时,需要维护的程序环境,于是又问google大人,找到方法了, 记录下来。
代码大概:
#!/usr/local/bin/python
#-*- coding: utf-8 -*-
import re,sys,re
import string
import signal
def sigint_handler(signum, frame):
global is_sigint_up
is_sigint_up = True
print ‘catched interrupt signal!’
#
signal.signal(signal.SIGINT, sigint_handler)
#以下那句在windows python2.4不通过,但在freebsd下通过
signal.signal(signal.SIGHUP, sigint_handler)
signal.signal(signal.SIGTERM, sigint_handler)
is_sigint_up = False
# 循环
while True:
try:
# 你想做的事情
if is_sigint_up:
# 中断时需要处理的代码
print “Exit”
break
except Exception, e:
# 这里发生错误时需要写的代码
break
以上算是大概的处理方式吧, 另外,我好喜欢python的缩进方式,最初时不习惯,但之后发觉代码看起来不怕乱,回头再看自己写的代码都能看得明.
python的Ctrl + C 中断处理, 记录.