我正在尝试使用 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/