python signal模块
python signal模块的使用实例。只有在主线程里面才可以调用signal.signal函数,而子线程可以调用signal.alarm函数对信号的状态进行设置。
1. signal处理handler
import signal
...
def sigint1(self, signum, frame):
if self.delete:
print >>sys.stderr, (
'SIGINT received; finishing up and running DELETE.\n'
'Send one more SIGINT to exit *immediately*.')
self.aborted = True
if self.running and not isinstance(self.running, BenchDELETE):
self.running.aborted = True
signal.signal(signal.SIGINT, self.sigint2)
else:
self.sigint2(signum, frame)
def sigint2(self, signum, frame):
sys.exit('Final SIGINT received.')
- 注册信号处理的handler
signal.signal(signal.SIGINT, self.sigint1)
以上代码取自swift-bench。