virtualbox sdk获取stdou

2024-05-18 19:55:08 发布

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

我需要帮助。我正在尝试在python2.7上使用Virtualbox sdk5.1,我不知道如何在vm客户操作系统中执行命令后获取stdout。这是我的代码:

BASIC_SNAPSHOT = 'clear'
TARGET_NAME = 'ubuntu-server-1404'

vbm = VirtualBoxManager()
vbox = vbm.vbox
mach = vbox.findMachine(TARGET_NAME)

session = vbm.getSessionObject(vbox)

def run_test():
    mach.lockMachine(session, 1)

    guest = session.console.guest
    #gs = session.console.guest.createSession('t4ks', 'Qwerty123', '', '')
    gs = guest.createSession('t4ks', 'Qwerty123', '', '')
    gs.waitFor(1, 3000)
    args = ["-l", "-a"]
    gp = gs.processCreate('/bin/ls', args, None, (5,), 30)
    gp.waitFor(1, 3000)

    pid = gp.PID
    #print gp.PID
    data = gp.read(1, 2000, 100)
    print data
    session.unlockMachine()

在数据变量nothing中写入:(


Tags: namegstargetsessionargsconsolegpmach
1条回答
网友
1楼 · 发布于 2024-05-18 19:55:08

在VM中执行cmd之后,我还得到了stdout。尝试修改我使用的以下代码:

import subprocess    
def parse_stdout():
        checkCommand = [getVBoxManage(), "guestproperty", "enumerate", computer, " pattern", "*/IP"]
        # ignore the above cmd :)
        print checkCommand
        parsable_stdout = subprocess.Popen(checkCommand, stdout = subprocess.PIPE).communicate()[0]
        return parsable_stdout

希望有帮助。你知道吗

相关问题 更多 >

    热门问题