繁体   English   中英

如何在Linux中提交2个作业(以并行方式运行位于2个不同目录中的2个python脚本)?

[英]How to submit 2 jobs (to run 2 python scripts in parallel located in 2 different directories) in linux?

我需要在没有任何交互的情况下并行运行2个不同的python脚本:script1和script2。 通过以下方式定位它们:

dir0包含文件jobcript.py和2个目录dir1,dir2。 dir1包含script1,dir2包含script2。

jobscript.txt中包含以下几行。

#!/usr/bin/python
import subprocess

exit_code1 = subprocess.call(["python", "./dir1/script1", "-o"], shell=False)
exit_code2 = subprocess.call(["python", "./dir2/script2", "-o"], shell=False)

我在linux中运行了以下命令:

$ python jobscript.py -o

但这是连续进行的。 如何并行运行它们? 解决方案非常感谢!

您可以使用Shell将流程置于后台:

from subprocess import call
call(["python ./dir1/script1 -o &"], shell=True)
call(["python ./dir2/script2 -o &"], shell=True)

“&”告诉bash将其放在后台。 如果希望python脚本等待每个脚本的结果,则需要创建一个线程。 我怀疑您想使用bash脚本而不是python:

#!/bin/bash
python ./dir1/script1 -o &
python ./dir2/script2 -o &

PS:为什么首先要通过子流程从python调用python脚本? 您可以直接访问该代码。 如果您希望它并行运行,那么多线程或多处理就是您的朋友。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM