首页 > 解决方案 > 使用 & 并通过 Python 生成时等待 GNU Parallel 进程完成

问题描述

在我当前的应用程序中,我有一个名为 Python 2.7 的脚本main.py,它启动另一个名为calculator.py使用 GNU Parallel 的 Python 2.7 脚本,如下所示:

os.system("seq 10000 | parallel -N0 -j 50 nohup python calculator.py &")
print "Done"

这工作得很好,除了一个例外:我需要在GNU Parallel 生成的所有 10000 个实例完成运行main.py之后(即在os.system调用之后,例如行之后)继续执行其他命令。print "Done"

有没有合适的方法来做到这一点?使用os.spawnPython 2.7的解决方案subprocess都受到欢迎,但使用 GNU Parallel 是绝对必要的。

编辑:这是我的要求:

1)如果终端关闭,生成的许多calculator.py实例对我来说至关重要(因此nohup)

2)我需要它不阻止当前终端会话(因此 &)

3)我需要它在上面的示例中打印“完成”,仅在 10000 个作业完成后才执行

如果不可能同时实现上述所有目标,我想我可以手动记录所有启动的进程,然后在所有这些进程结束后手动强制其余代码“main.py”代码继续。当然,这是一个麻烦的最后资源选项。

标签: pythonpython-2.7terminalpipegnu-parallel

解决方案


推荐阅读