检查后台任务是否完成

时间:2017-11-06 20:24:28

标签: python unix

我使用以下方法在后台并行运行大量模拟:

for i in range (a, b):
    os.system("python xxx.py &")

// To-Add: check if tasks are complete, then process the results

xxx.py调用另一个软件。 有没有办法检查任务是否完成,所以我可以处理结果?

2 个答案:

答案 0 :(得分:3)

如果您使用subprocess,那么您将可以更好地控制外部流程,包括能够在不阻塞的情况下启动多个流程,并检查它们是否已完成。您可能需要收集一组Popen实例并使用poll查看它们是否完整。

答案 1 :(得分:0)

试试这段代码:

#!/usr/bin/python3
import subprocess
import time
proc = subprocess.Popen('python xxx.py', shell=True)

while proc.poll() == None:
     print ( proc.pid);
     time.sleep(1);