无法在带有python子进程的ubuntu上调用gnometerminal

2024-09-22 20:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

用例: 我需要在两个单独的gnome终端上运行一个命令。你知道吗

命令是'appium-p port',其中port是一个包含两个端口号的列表。 所以最后的命令是

附录-p 4723

附录-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终端应该用命令调用

附录-p 4723

附录-p 4750

我在这里做错了什么,有没有别的办法可以做到这一点。 我还需要在它们启动后杀死被调用的终端


Tags: import命令终端forreadosportubuntu
1条回答
网友
1楼 · 发布于 2024-09-22 20:25:24

我仍然不能解决上面的问题,但是我找到了一个在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终端

相关问题 更多 >