2017-02-06 48 views
0

このようなbashスクリプトから複数のPythonスクリプトを同時に実行できます。同時に複数のPythonスクリプトを実行する

#!/bin/bash 
python pr1.py & 
python pr2.py & 
python aop.py & 
python loader.py & 

しかし、バッチを同時に実行したい場合や、実行した後にバッチを実行する場合は、いくつか順番に開始してください。 &コマンドでこの作品?:

#!/bin/bash 
python pr1.py & 
python pr2.py & 
python ap.py & 
python loader.py 
python cain.py 
python able.py 
+0

あなたの質問がありますか? –

答えて

3

でそれを実行している間の依存関係や同時アクセスの問題の世話をするように注意してください、あなたは、単にこのようwaitコマンドを追加することができます。

#!/bin/bash 
python pr1.py & 
python pr2.py & 
python ap.py & 
wait 
python loader.py 
python cain.py 
python able.py 

waitは明らかに、すべてのジョブ(あなたが解雇したバックグラウンド・プロセス)が完了するのを待っています。

0

あなたは、バックグラウンドでスクリプトを実行しています。ループ内にチェックを追加して、コマンドを実行し、ジョブのリストを返すかどうかを確認することができます。それが止まったら、次のPython呼び出しのバッチを続けることができます。

+0

Bashには 'wait'コマンドがあります。 –

+0

それはおそらくもっと良い選択肢でしょう。私は自分の答えを編集するか、それをジョシュに追加することができます。 – LhasaDad

4

最後に&を入力すると、バックグラウンドプロセスとして実行されます。したがって、&で終わるすべてのスクリプトは並行して実行されます。あなたは両方を試すことができます順番に他の3つのスクリプトを実行するには

&&は前のスクリプトが正常に

python loader.py && python cain.py && python able.py 

||実行された場合にのみ、次のスクリプトが順次にかかわらず、結果のスクリプトを実行実行します前のスクリプトの

python loader.py || python cain.py || python able.py 
+0

偉大な答え - ありがとうございます。 – manners

+0

問題が解決したと思われる場合は、回答を受け入れることができますか –

0

なぜそれを試してみませんか?

#1.py 
import time 
time.sleep(3) 
print("First script") 

#2.py 
import time 
time.sleep(3) 
print("Second script") 

プロセスをバックグラウンドにすると、両方のpythonスクリプトの出力が同時に表示されます。

#!/bin/bash 
python 1.py & 
python 2.py & 

あなたは&せずにそれを実行した場合は、6秒後に2番目のスクリプトからの出力が表示されます。

#!/bin/bash 
python 1.py 
python 2.py 

PS:あなたのbashスクリプトで並列

関連する問題