2016-05-27 2 views
0

Я пишу программу начальной загрузки, которая запускает несколько отдельных программ одновременно. Таким образом, я требую, чтобы каждая подпрограмма имела собственное окно терминала таким образом, чтобы дать мне возможность запускать/останавливать каждую подпрограмму индивидуально в бутстрапе.Python: открытие программы в новом терминале [Linux]

Я смог сделать это в Windows с помощью 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

Вы всегда можете использовать [экран] (https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/), чтобы запустить их все в одном окне терминала. – Basic

ответ

0

Как насчет этого?

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

Это заставляет его открывать новый процесс.

+0

gnome-terminal is а не на малине pi, и (пожалуйста, поправьте меня, если я ошибаюсь). Я не верю, что удалю удаленный процесс os.system удаленно. – Jack

1

Я, наконец, понял это, но хотел опубликовать решение, чтобы другие могли его найти в будущем.

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

lxterminal терминального название Raspberry Pi, в -e требуется, python ./Foo.py запускает файл питон и stdout=PIPE отображает выход на новом окне терминала.

Запуск вышеуказанного запускает Foo.py в новом окне терминала и позволяет пользователю, при желании, завершить процесс Foo.py.

Смежные вопросы