【发布时间】:2014-01-28 20:05:32
【问题描述】:
我有一个 python 3 脚本,它在启动时运行。它可以与一些资源一起使用,我希望它在退出时免费。
如果我用kill -6 $PID 杀死它,我该如何管理该脚本将退出。
或者关于如何发送退出命令并在脚本中检测它的任何其他想法。
【问题讨论】:
标签: python python-3.x exit
我有一个 python 3 脚本,它在启动时运行。它可以与一些资源一起使用,我希望它在退出时免费。
如果我用kill -6 $PID 杀死它,我该如何管理该脚本将退出。
或者关于如何发送退出命令并在脚本中检测它的任何其他想法。
【问题讨论】:
标签: python python-3.x exit
signal 模块正是您要寻找的。p>
import signal
def handler(signum, frame):
print('Signal handler called with signal', signum)
signal.signal(signal.SIGABRT, handler)
在处理函数中,您可以使用sys.exit() 终止。
但是,更常见的是使用 SIGINT(在终端中按 CTRL+C 时会发生这种情况)或 SIGTERM 来终止程序。如果您没有清理代码,则不需要编写一行代码来处理 SIGINT - 默认情况下,它会引发 KeyboardInterrupt 异常,如果没有被捕获(这就是为什么你应该永远不要使用空白的except: 语句),导致你的程序终止。
【讨论】: