1启动服务
qemu-x86...... -hda XXX.qcow2 -qmp 127.0.0.1:44444,server,nowait
新增-qmp和后面的参数以启动qmp服务支持外部调用。
2.python 调用
直接代码如下:list需要自己再根据输出筛选一下:
import json
import socket
def connect_to_qmp(host='127.0.0.1', port=44444, timeout=5):
"""Connect to the QEMU QMP interface."""
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.settimeout(timeout) # 设置超时时间
try:
client.connect((host, port))
print(f"Connected to {host}:{port}")
# 接收QMP初始握手消息直到接收到完整的JSON对象
welcome_message = ''
while True:
data = client.recv(1024).decode('utf-8')
if not data:
break
welcome_message += data
try:
response = json.loads(welcome_message)
print("QMP Welcome message:", response)
break
except json.JSONDecodeError: