Python中怎么捕获SIGINT信号

Python脚本退出

当运行Python脚本的时候,我们可以通过Ctrl+C来发送一个SIGINT信号来终止我们的脚本。如果希望在Python程序退出之前做一些清理工作(或者是简单的打印一条log)应该怎么做呢?

注册signal并绑定处理函数

我们可以通过捕获SIGINT信号的方式来实现,首先要注册SIGINT并绑定一个处理函数,具体的代码如下:

#!/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()

如果需要捕获其它的信号,可以参考Python的官方文档:https://docs.python.org/3/library/signal.html

By Code问答

发表评论

电子邮件地址不会被公开。 必填项已用*标注

81 + = 88