2016-05-27 10 views
0

私はいくつかの個々のプログラムを同時に実行するブートストラッププログラムを書いています。したがって、ブートストラップ内で各サブプログラムを個別に開始/停止できるように、各サブプログラムに独自の端末ウィンドウが必要です。Python:新しい端末でプログラムを開く[Linux]

私はPopenとCREATE_NEW_CONSOLEを使ってこれを行うことができました(それぞれのサブプログラムは独自の.pyファイルを持っています)。しかし、これをLinuxで実現するのに問題があります。私はRaspberry PiとPython 2.7.9を使用しています。

私が試してみました:

Subprogram = Popen([executable, 'Foo.py'], shell=True)

は、しかし、これは...新しいウィンドウを作成していないようだと

os.system("python ./Foo.py")

は、新しいウィンドウを作成したり、私を許可していないようですプロセスを終了する。他の研究は、これまでに実を結ばないことが証明されている

..

私はこれをどのように行うことができますか?事前に多くの感謝。

+0

[screen](https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/)を使って、同じターミナルウィンドウ内でそれらをすべて起動することができます – Basic

答えて

0

これはいかがですか?

os.system("gnome-terminal --disable-factory") 

強制的に新しいプロセスを開きます。

+0

gnome-terminal isラズベリーパイではなく、(私が間違っている場合は私を修正してください)私はos.systemプロセスを遠隔から殺すことができるとは思わない。 – Jack

1

私はついにそれを理解しましたが、他の人が将来見つけられるように解決策を投稿したかったのです。

Subprogram = Popen(['lxterminal', '-e', 'python ./Foo.py'], stdout=PIPE)

lxterminalラズベリーパイの端末名であり、-eが必要とされ、python ./Foo.pyはPythonのファイルを起動し、stdout=PIPEは新しいターミナルウィンドウに出力を表示します。

上記を実行すると、新しい端末ウィンドウでFoo.pyが起動され、必要に応じてFoo.pyプロセスを終了することができます。

関連する問題