我正在研究一个启动多个进程和数据库连接的python脚本。我偶尔想用Ctrl+ C信号杀死脚本,我想做一些清理工作。
在Perl中,我会这样做:
$SIG{'INT'} = 'exit_gracefully';
sub exit_gracefully {
print "Caught ^C \n";
exit (0);
}
我如何在Python中做类似的事情?
可以把它像一个异常(KeyboardInterrupt),像任何其他。创建一个新的文件,并从你的shell中运行下面的内容来看看我的意思:
import time, sys
x = 1
while True:
try:
print x
time.sleep(.3)
x += 1
except KeyboardInterrupt:
print "Bye"
sys.exit()
注册你的处理程序signal.signal像这样:
#!/usr/bin/env python
import signal
import sys
def signal_handler(signal, frame):
print('You pressed Ctrl+C!')
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()