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



我需要并行运行 2 个不同的 python 脚本:script1 和 script2,无需任何交互。它们的位置如下:

dir0 包含文件 jobcript.py 和 2 个名为 dir1、dir2 的目录。目录 1 包含脚本 1,目录 2 包含脚本 2。

作业脚本.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脚本?您可以直接访问该代码。如果您希望它以同等方式运行,那么多线程或多处理是您的朋友。

最新更新