我有一个Python 3.9脚本,它在一个 * 新的控制台 * 中启动另一个进程。“另一个进程”即使在原来的进程完成后也会继续运行。
这是我在Windows上所拥有的:
# startup.py script
# =================
import sys, subprocess
if __name__ == '__main__':
print('start startup.py script')
arguments = ['python', 'other_process.py']
arguments.extend(sys.argv[1:])
subprocess.Popen(
arguments,
creationflags = subprocess.CREATE_NEW_CONSOLE,
)
print('end startup.py script')
它运行得很好。下面您可以看到左侧的原始控制台,我在其中调用了startup.py
。我还传递了一个--help
标志,然后简单地将其传递给other_process.py
脚本。在右侧,您可以看到other_process.py
脚本正在运行。请注意,原始的startup.py
脚本已经完成,而other_process.py
脚本 * 仍在运行 *。这正是我所需要的:
subprocess.CREATE_NEW_CONSOLE
参数在Linux上不起作用。我听说设置shell=True
会有类似的效果,但它不会产生一个新的控制台。
如何在Linux上获得相同的效果?
1条答案
按热度按时间jchrr9hc1#
Unix不提供此选项/服务,但您可以运行终端仿真程序:
不幸的是,没有一种标准的方法来查找 * 使用哪个 * 终端仿真器(或者甚至是哪些可用的)。在Wikipedia的列表中,我推荐使用
gnome-terminal
、konsole
和xterm
。