用例: 我需要在两个独立的gnome终端上运行一个命令。
命令是'appium -p port',其中port是包含两个端口号的列表。 所以最后的命令就像
appium -p 4723
appium -p 4750
这是我的代码
import os
import signal
import subprocess
def open_ubuntu_appium(*args):
for item in args:
for subitem in item:
subitem=str(subitem)
command='appium -p'
command ='"'+command+' '+subitem+';read -n1" '
print command
#"appium -p 4723;read -n1"
#"appium -p 4750;read -n1"
subitem = Popen(['gnome-terminal','--disable-factory','-x','bash','-c',command],preexec_fn=os.setpgrp)
port=[4723,4750]
appium=open_ubuntu_appium(port)
输出: 没有调用gnome终端
预期: 应该使用命令
调用两个单独的Gnome终端appium -p 4723
appium -p 4750
我在这里做错了什么,有没有其他办法可以实现这一目标。 我还需要在启动后杀死被调用的终端答案 0 :(得分:0)
我仍然无法解决上述问题,但我找到了在ubuntu中打开多个终端的替代方案
from subprocess import Popen
def open_appium(*args):
command='appium -p'
linux_terminal=['gnome-terminal']
for item in args:
for port in item:
linux_terminal.extend((['--tab','--disable-factory','-e', '''
bash -c '
echo "%(command)s %(port)s"
%(command)s "%(port)s"
read
'
''' % locals()]))
linux_window=Popen(terminal,preexec_fn=os.setpgrp)
port=[4723,4730]
ab=open_appium(port)
输出: 使用“appium -p”+ port命令
调用两个单独的gnome终端