python - 有没有办法检查子进程是否仍在运行?

标签 python subprocess

我正在 Python 中使用 subprocess.Popen 启动多个子进程。 我想检查一个这样的过程是否已经完成。我找到了两种检查子流程状态的方法,但似乎都强制流程完成。 一种是使用 process.communicate() 并打印返回码,如下所述:checking status of process with subprocess.Popen in Python . 另一个是简单地调用 process.wait() 并检查它是否返回 0。

有没有办法检查一个进程是否仍在运行,而无需等待它完成?

最佳答案

Ouestion: ... a way to check if a process is still running ...

例如,您可以这样做:

p = subprocess.Popen(...
"""
A None value indicates that the process hasn't terminated yet.
"""
poll = p.poll()
if poll is None:
  # p.subprocess is alive

Python » 3.6.1 Documentation popen-objects

用 Python:3.4.2 测试

关于python - 有没有办法检查子进程是否仍在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43274476/

相关文章:

Python:装饰器特定参数(与包装函数无关)?

python - 将新列添加到 pandas DataFrame 导致 NaN

python - 编写一个 for 循环,在使用 python-docx 模块迭代时创建单独的 docx 文件?

python - 下载 bzr 分支时权限被拒绝(公钥)

python - 如何在多进程中从 python 调用 shell 脚本?

python - 在后台进程中捕获串行数据

Python3 GTK3 - 单击后立即将按钮更改为不敏感

python - 仅使用 datetime 包将当前时间转换为 utc 时间 python

python - 从python在windows上找到bash可执行文件的位置

python - 在 Python subprocess.Popen() 中处理 Shell 重定向