使用&并通过Python生成时,等待GNU并行进程完成

时间:2018-08-08 07:00:43

标签: python python-2.7 terminal pipe gnu-parallel

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

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

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

有正确的方法吗?都欢迎使用os.spawn和Python 2.7 subprocess的解决方案,但是使用GNU Parallel是绝对强制的

编辑:这是我的要求:

1)对我来说至关重要的是,如果终端关闭,则产生的许多Calculator.py实例保持运行状态(因此,nohup)

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

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

如果不可能同时实现上述所有功能,那么我想我可以手动保留所有启动进程的日志,然后手动强制其余所有代码“ main.py”代码在所有这些进程结束后继续运行。当然,这是一个繁琐的last-resource选项。

0 个答案:

没有答案