在当前应用程序中,我有一个名为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选项。