python - 启动shell的多个进程

标签 python linux

我正在尝试使用 python 同时在多个独立的终端实例中启动命令。做这个的最好方式是什么?现在我正在尝试将 subprocess 模块与 popen 一起使用,它适用于一个命令但不适用于多个命令。

提前致谢。

编辑:

这是我正在做的:

from subprocess import*

Popen('ant -Dport='+str(5555)+ ' -Dhost='+GetIP()+ ' -DhubURL=http://192.168.1.113:4444 -Denvironment=*firefox launch-remote-control $HOME/selenium-grid-1.0.8', shell=True)

对我来说,问题是这会在终端中启动一个 java 进程,我希望它可以无限期地运行。其次,我想在多个不同的进程中多次运行类似的命令。

最佳答案

只要进程正在运行,它就应该保持打开状态。如果您想同时启动多个,只需将其包装在 thread 中即可。

未经测试的代码,但您应该了解总体思路:


class PopenThread(threading.Thread):

    def __init__(self, port):
        threading.Thread.__init__(self)
        self.port=port

    def run(self):
        Popen('ant -Dport='+str(self.port)+ ' -Dhost='+GetIP()+ 
                ' -DhubURL=http://192.168.1.113:4444' 
                ' -Denvironment=*firefox launch-remote-control'
                ' $HOME/selenium-grid-1.0.8', shell=True)

if '__main__'==__name__:
    PopenThread(5555).start()
    PopenThread(5556).start()
    PopenThread(5557).start()

编辑:此处描述的双叉方法:https://stackoverflow.com/a/3765162/450517 Mike 将是启动守护进程的正确方法,即一个不会通过 stdio 进行通信的长时间运行的进程。

关于python - 启动shell的多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764499/

相关文章:

linux - G++:链接器似乎没有正确链接

linux - 从Linux中的文件名文本列表中批量复制文件

python - 在 linux 中编译 python 脚本

python - 如何使用 pip 向互联网访问被阻止的人获取requirements.txt 文件的所有请求?

c - C语言获取Linux系统信息

python - 在 Python 3.5 中,如何将函数指定为类型提示?

Python - 两个相同长度的列表之间的完全区别

ios - 在 Linux 上可以进行 iOS 开发的 CI 吗?

python - 检查 numpy 数组中步幅的非歧义性

python 对象从错误的文本文件中获取先前的对象属性,并从正确的文本文件中获取它们自己的属性