QEMU客户自动化使用python pexpect

时间:2017-08-25 04:10:17

标签: python automation pexpect

我希望运行qemu guest,登录并完成一些任务。我正在使用以下

  • Ubuntu 16.04作为主持人
  • QEMU 2.10.0-rc4
  • python3
  • pexpect 4.0.1

我已经尝试了automation of processes by python

中提到的代码

但是,我总是得到超时异常。任何帮助将不胜感激。请在下面找到我的代码段和例外。

代码:

load_jetfuel_library

异常

import pexpect
QEMU_RUN_CMD='qemu-system-arm -nographic -kernel kernel.bin -M versatilepb -drive file=core-image-minimal-qemuarm.rootfs.ext4,if=virtio,format=raw,cache=writeback -m 128 -append "root=/dev/vda rw console=ttyAMA0,115200 console=tty mem=128M highres=off rootfstype=ext4"'

child = pexpect.spawn(QEMU_RUN_CMD) 
child.expect('login: ')
child.sendline('root')
child.expect('# ')
child.sendline('ls -l')
child.expect(pexpect.EOF)
output = child.before
print ("{}".format(output))

1 个答案:

答案 0 :(得分:0)

这是不正确的:

child.sendline('ls -l')
child.expect(pexpect.EOF)

因为ls -l之后没有EOF。你再次向expect() shell提示:

child.sendline('ls -l')
child.expect('# ')
output = child.before
print ("{}".format(output))