一尘不染

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

python

我正在使用Python中的subprocess.Popen启动许多子流程。我想检查一个这样的过程是否已经完成。我发现了两种检查子流程状态的方法,但似乎都可以迫使流程完成。一种是使用process.communicate()并打印返回代码,如解释在这里。另一种方法是简单地调用process.wait()并检查它是否返回0。

有没有一种方法可以检查进程是否仍在运行,而无需等待进程完成?


阅读 122

收藏
2020-12-20

共1个答案

一尘不染

Ouestion :…一种检查进程是否仍在运行的方法…

您可以这样做:

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

Python»3.6.1文档popen对象

使用Python测试:3.4.2

2020-12-20