python - Python,如何在 Windows 中处理信号
问题描述
这是专门针对 Windows 的,我在基于 linux 的系统上没有这个问题。
所以,我有一个程序在运行时创建子进程。如果程序正常退出,甚至出现异常或 ctrl+c 事件,这些子进程将正确终止,通过使用try
and KeyboardInterrupt
and finally
inif __name__ == '__main__':
但是,如果我在中间杀死程序,我说的是PyCharm
使用STOP
按钮杀死它。这些子流程不会终止。我不确定这个STOP
按钮在 Windows 上发送什么信号。
我尝试使用signal.signal(signal.SIGTERM, handler)
. 它不起作用,我已经尝试过SIGTERM
,,SIGINT
(SIGKILL
,,在信号处理程序CTRL_C_EVENT
中CTRL_BREAK_EVENT
不起作用。)。它们都不起作用。我也读过这篇文章:How to handle the signal in python on windows machine
在这种情况下如何优雅地退出?PyCharm 场景中的这个STOP
按钮。
解决方案
推荐阅读
- python - 使用 unicode 替换特殊字符
- arrays - 为什么每当我单独使用“if”语句以及在“if”中使用“if”时值会发生变化?
- c# - 关于在 Protobuf-net 中实现 VARIANT
- html - 嗨,我在 flexbox 中定位有问题
- reactjs - (React & Mobx & Leaflet)等待然后没有按我预期的那样工作
- javascript - 猫鼬填充返回未定义
- python - 在 Python 中使用 for 循环对多个 DataFrame 进行操作
- reactjs - 如何将 href 传递给 nextjs 中的 onClick 函数?
- python - 将字符串传递给 subprocess.run 似乎将其括在单引号中否定通配符搜索?
- c - 为什么 __builtin_return_address 在 Clang 中崩溃?