运行辅助python脚本时:
subprocess.Popen
,或者subprocess.call
甚至是execfile
在一个新的终端?(例如,在与运行脚本的当前终端不同的终端中)。例如,first.py
应首先调用要运行的两个子流程,然后才调用第二个子流程second.py
。因为这两个脚本first.py
和second.py
是相互依赖的(例如first.py
进入等待模式,直到second.py
运行,然后first.py
恢复,而且我不知道如何使它们之间的通信在子流程方面起作用)。
import subprocess
command = ["python", "first.py"]
command2 = ["python", "second.py"]
n = 5
for i in range(n):
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
p2 = subprocess.Popen(command2, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while True:
output = p.stdout.readline().strip()
print output
if output == 'stop':
print 'success'
p.terminate()
p2.terminate()
break
框架(Ubuntu,python 2.7)
我想你想要类似的东西
subprocess.call(['xterm','-e','python',script])
好老的xterm
几乎没有多余的装饰。在Freedesktop系统上,也许可以运行xdg-terminal
。在Debian上,尝试x-terminal-emulator
。
但是,在大多数情况下,使程序需要X11是错误的。更好的解决方案是运行带有输出到日志文件(或套接字,或其他任何东西)的子进程,然后分别tail -f
在这些文件上运行(在不同的终端中,或从另一台服务器上运行)ssh
,或输出到支持以下功能的记录器rsyslog
,或或或...),使您的程序简单且模块化,不受“便利”依赖。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句