Python VS Code 调试 - 捕获 SIGTERM?

标签 python visual-studio-code

我要强制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/

相关文章:

python - Django 开发服务器重新加载时间太长

Zip 文件的 Python 问题

autocomplete - 禁用自动完成功能。 VSCode 中的(点)

python - 在函数中迭代 Pandas 系列的行

python - 决策树中的样本和值似乎存在冲突

javascript - 如何在 Visual Studio Code 中显示 'console.log' 输出?

visual-studio-code - VSCode 中自动展开建议详细信息

mysql - 如何在 VSCode 中断开与 MySQL 服务器的连接?

java - 如何在 Visual Studio Code 中启用 Java 断言

python - knn 的 y 轴样本不匹配