我要强制sys.exit()
当 python 调试器停止时。当我停止调试器时,我看到 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
最佳答案
现在我们似乎是 OOL(运气不好) - 我遇到了同样的问题,发现 VS Code python 扩展确实在调试停止时发出了 SIGKILL,这是无法解决的。
与 node.js 扩展不同,Python 扩展也不支持将类型设置为 SIGTERM 或 SIGINT。
我发现的唯一解决方法是在 VS Code 中有一个开放的终端(类型:Pythen Debug Terminal)。它应该在调试期间显示 python 命令行为和输出。通过单击终端并手动按 ctrl-C 使终端成为焦点。这应该会优雅地停止调试程序,并且您捕获 SIGTERM 或 SIGINT 将起作用。
关于Python VS Code 调试 - 捕获 SIGTERM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325394/