我想在python调试器停止时强制sys.exit()
。当我停止调试器时,会看到Terminated: 15
,因此我假设它是SIGTERM
。但是,当停止调试器时,不会调用我的kill函数。
def kill(sig, frame):
sys.exit(0)
signal.signal(signal.SIGINT, kill)
signal.signal(signal.SIGTERM, kill)
在停止vscode调试器时,发送什么信号?
编辑:
只需尝试所有这些。没有爱
for s in signal.Signals:
try:
signal.signal(s, self._kill)
except:
pass
答案 0 :(得分:0)
现在我们似乎是个OOL(运气不好)-我遇到了同样的问题,发现VS Code python扩展确实在调试停止时发出了SIGKILL,这是无法解决的。
与node.js扩展不同,Python扩展也不支持将类型设置为SIGTERM或SIGINT。
我发现的唯一解决方法是在VS Code中打开终端(类型:Pythen Debug Terminal)。它应该显示python命令的行为以及调试期间的输出。通过单击使终端成为焦点,然后手动按ctrl-C。这样应该可以正常停止已调试的程序,并且您可以捕获SIGTERM或SIGINT。