2017-08-05 26 views
0

私は、基本的に1つのターミナルウィンドウを開き、そこにノードjsサーバーを起動し、別のターミナルウィンドウを開き、javaを開始するpythonスクリプトを書く必要があるという問題があります。それの中のプログラム。複数のターミナルウィンドウから複数のコマンドをPythonスクリプトから実行する

2つのsubprocess.call()関数を実行すると、同じターミナルウィンドウで動作します。

これを行う方法はありますか?

感謝:)

答えて

0

使用subprocess.Popen:。

これはその中の各ボットと実行プログラムのための新しいウィンドウを作成します。 python3の-iオプションは、TestBot3.pyスクリプトの終了後にウィンドウを対話的にすることです。

from subprocess import Popen, PIPE 

bot1 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot1.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE) 
bot2 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot2.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE) 
bot3 = Popen(["lxterminal", "-e", "python3", "-i", "TestBot3.py"], stdout=PIPE, stderr=PIPE, stdin=PIPE) 

それともあなたは、端末内でこのオプションに引数を実行し-eでgnome-terminalの使用することができ、それぞれのターミナルを開くにはfrom subprocess import call

call(["python3", "TestBot1.py"]) 
call(["python3", "TestBot2.py"]) 
call(["python3", "TestBot3.py"]) 

を使用することができます。

call(['gnome-terminal', '-e', "python3 TestBot1.py"]) 
call(['gnome-terminal', '-e', "python3 TestBot2.py"]) 
call(['gnome-terminal', '-e', "python3 TestBot3.py"]) 
+0

だから私がPopenオプションを使いたい場合、実行したい2つのコマンドは "cd Desktop && npm start"と "cd Desktop/folder && mvn exec:exec"です。私はこのように経験はあまりありませんので、私には分かりません:) – lauderdice

+0

"Desktop/test/TestBot1.py"というディレクトリに "TestBot1.py"のようなプログラムファイルのパスを指定することができます。 –

関連する問題