Python: 在新终端中打开程序 [Linux]

3
我正在编写一个引导程序,它能同时运行多个单独的程序。因此,我需要每个子程序都有自己的终端窗口,并且能够在引导程序中单独启动/停止每个子程序。
我已经在Windows上使用Popen和CREATE_NEW_CONSOLE(每个子程序都有自己的.py文件)实现了这一点,但是在Linux上我遇到了麻烦。我使用的是树莓派和Python 2.7.9。
我尝试过:
Subprogram = Popen([executable, 'Foo.py'], shell=True)
但是这似乎没有创建新的窗口。

os.system("python ./Foo.py")
则无法创建新的窗口,也无法让我终止进程。
目前为止其他的研究都没有结果...
请问我该怎么做呢?非常感谢您的帮助。

你可以使用 screen 在同一个终端窗口中启动它们。 - Basic
2个回答

4
我最终找到了答案并想要分享解决方案,以便其他人在未来可以找到它。 Subprogram = Popen(['lxterminal', '-e', 'python ./Foo.py'], stdout=PIPE) 上述代码中,lxterminal 是树莓派终端的名称,-e 是必需的,python ./Foo.py 启动了 Python 文件,并且 stdout=PIPE 在新的终端窗口中显示输出。
运行上述代码会在新的终端窗口中启动 Foo.py,并允许用户在需要时终止 Foo.py 进程。

0

这个怎么样?

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

它强制打开一个新进程。


1
gnome-terminal不在树莓派上,而且(如果我错了请纠正我)我不认为我可以远程终止os.system进程。 - Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接