【问题标题】:Opening a terminal running the same program in Python在 Python 中打开一个运行相同程序的终端
【发布时间】:2015-12-18 04:14:12
【问题描述】:

我熟悉如何从 Python (os.system("gnome-terminal -e 'bash -c \"exec bash\"'")) 打开终端,但是有没有办法打开另一个运行与打开新终端相同的程序的终端?

例如,如果我正在运行一个名为 foo.py 的程序并打开另一个终端,那么新终端也将运行 foo.py

【问题讨论】:

  • 使用线程,或者查看是否运行带有“nohup”前缀的第一个字符串。
  • 打开一个终端,运行这个程序。然后那个程序打开另一个终端,它自动运行同一个程序,一次又一次,对吧?
  • @Evert 你能举个例子吗?
  • 对不起,我好像误解了你的问题:我把它读成同一个程序依次打开多个终端。
  • 您需要os.system("gnome-terminal -e 'bash -c 'exec python /path/to/foo.py'") 吗?

标签: python linux bash


【解决方案1】:

this question,非常接近。不过,您想将 sys.argv 添加为参数:

import sys
import subprocess
cmd = 'xterm -hold -e ./{0}'.format(' '.join(sys.argv))
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

确保你以某种方式检查你已经运行了多少进程/终端,否则它会在几秒钟内挂起你的机器。

【讨论】:

  • 我试过了,但 xterm 终端输出“bash: foo.py: command not found”。另外,我正在尝试使用 gnome-terminal 来实现。很抱歉造成混乱。
  • 我编辑了答案,它可能应该是“./foo.py”,而不是“foo.py”。对 gnome-terminal 参数不太了解,抱歉。
猜你喜欢
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多