【发布时间】:2012-03-17 11:58:25
【问题描述】:
对不起,如果这个问题之前被问过 100 次,很遗憾,如果是的话,我还没有找到它。我正在寻找一个 python 脚本,它将产生一个后台进程并监视它以查看它是否已完成。我已经看到现在建议使用 subprocess.call 的 os.system 命令,但这似乎会阻止程序直到进程完成。
我的最终目标是:
1) 程序运行并开始处理sing信息
2) 在程序执行到一半时,它会启动一个需要同时运行的 Windows DOS 程序
3) 程序继续运行并继续处理数据。
4) 程序监视 DOS 程序以及它何时退出然后发送最终信息。但是 DOS 程序必须已经退出才能运行此步骤。
如果有人能指出我正确的方向,那就太好了。
更多信息:我正在尝试利用 Securecrt 中内置的 python 处理器。它似乎可以很好地为程序打开 CMD 窗口,但它不会打印出任何中间命令(在本例中只是启用),直到我终止子进程。
import os
import subprocess
def Main()
crt.Screen.Synchronous = True
VMCOMMAND = '\"C:\\Program Files\\VMWare\\VMware OVF Tool\\ovftool.exe\" ' + '--name=test' + ' C:\\temp\\test.ova' + ' vi://root:test@1.1.1.1'
from subprocess import Popen
p = Popen(VMCOMMAND)
crt.Screen.Send(chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
crt.Screen.Send("enable" + chr(13))
returncode = p.wait()
crt.Screen.Send("should not see enable" + chr(13))
Main ()
【问题讨论】:
-
“一个 Windows DOS 程序”?程序要么适用于 DOS,要么适用于 Windows,没有“Windows DOS 程序”之类的东西。
-
对不起,Ignacio,这是一个在 Windows 7 上运行的 Windows DoS 程序。该程序基本上是 ovftool 的 cmd 行。
-
OVFTool 不是用于 DoS,而是用于虚拟化。
-
ovftool 有一个 dos 命令行界面,可用于将 OVA/OVF 文件安装到 VM。
-
不,它没有。这是一个 Windows 程序。
标签: python subprocess secure-crt