gpt4 book ai didi

python - 如果应用程序崩溃,如何让子进程不被卡住?

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:34 24 4
gpt4 key购买 nike

我正在一个接一个地启动一系列子进程,类似于

for variables in my_list:
proc = subprocess.Popen(**variables)
proc.wait()

但是,如果其中一个崩溃,Windows 会弹出一个窗口,提示该程序已停止工作;由于该进程尚未被终止,因此该程序会等待,直到我单击“关闭程序”按钮

damn_you_windows

我想知道是否有一种方法可以告诉 Python 在没有 UI 的情况下打开此进程,或者使其在崩溃时不会弹出错误报告。该文档似乎没有解决这些问题。

我使用的是 python 2.7,因此无法使用 python 3 中存在的 timeout 标志。

最佳答案

错误模式由子进程继承。通过 ctypes 设置它。例如:

import ctypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)

SEM_FAILCRITICALERRORS = 1
SEM_NOGPFAULTERRORBOX = 2

prev_error_mode = kernel32.SetErrorMode(SEM_FAILCRITICALERRORS |
SEM_NOGPFAULTERRORBOX)

关于python - 如果应用程序崩溃,如何让子进程不被卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com