Python检测kill请求

Vik*_*r K 2 python exit python-3.x

我有一个python 3脚本,它在启动时运行.它可以使用一些我想在退出时免费获得的资源.

如果我正在杀死它,我怎么能管理该脚本将要退出kill -6 $PID.

或者关于如何发送exit命令并在脚本中检测它的任何其他想法.

Thi*_*ter 11

信号模块是你在找什么.

import signal

def handler(signum, frame):
    print('Signal handler called with signal', signum)

signal.signal(signal.SIGABRT, handler)
Run Code Online (Sandbox Code Playgroud)

在处理函数中,您可以终止sys.exit().

但是,更常见的是使用SIGINT(在终端中按CTRL + C时会发生这种情况)或SIGTERM终止程序.如果你没有清理代码,你不需要编写一行代码来处理SIGINT - 默认情况下会引发一个KeyboardInterrupt异常,如果没有捕获(这就是你永远不应该使用空白except:语句的原因),原因你的程序终止.