簡體   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