Python 中长时间运行的子进程的稳健管理[已关闭]

问题描述 投票:0回答:0

我的应用程序使用多个外部二进制文件,这些二进制文件是使用

subprocess.Popen
通过新子进程调用的。我将 stdout/stderr 写入文件并检索退出代码以确定执行是否成功。解析标准输出以检索所需的结果。这些调用可能会运行几分钟到几小时,并且应用程序会并行涉及许多此类调用。

这种方法是有效的,尽管我遇到了一些奇怪的问题,子进程由于从某处收到 SIGTERM 信号而随机崩溃或退出。由于我从这些子进程中获得的信息很少,因此在调试这些问题时遇到了很多麻烦。即使退出代码也并不总是有帮助,因为某些应用程序在突然终止后返回 0。

是否有更好的方法来管理子流程并获取更多有关子流程的诊断信息?我在想可能有一个库可以实现这一点,或者我可能会缺少一些关于标准

subprocess
库的选项,尽管我真的找不到任何东西。

或者,如果这是不可能的,那么在没有 API 的情况下处理外部程序执行的最佳方法是什么?有没有方便调试的方法?

python subprocess
© www.soinside.com 2019 - 2024. All rights reserved.