On 09/07/10 - 04:08:13PM, Lai Jiangshan wrote:
Hi, Chris,
I saw virDomainQemuMonitorCommand() in libvirt-qemu.c,
I think it will help me to send arbitrary qemu-monitor command to
qemu via libvirtd.
But how can I use virDomainQemuMonitorCommand()?
Can I use it by just using current tools(virsh or other) without writing any code?
Unfortunately, no. There is a bug in the current virsh command that prevents
it from properly parsing the command-lines necessary to send monitor commands
to the qemu monitor. Until we fix that bug, we won't push the support into
virsh.
For that reason you will need to write a custom program to call
virDomainQemuMonitorCommand as appropriate. The absolute easiest program you
can write looks something like (untested):
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>
int main()
{
virConnectPtr conn;
virDomainPtr dom;
char *reply;
conn = virConnectOpen(NULL);
dom = virDomainLookupByName(conn, "mydomain");
virDomainQemuMonitorCommand(dom, "info cpus", &reply, 0);
fprintf(stderr, "Reply: %s\n", reply);
free(reply);
virConnectClose(conn);
return 0;
}
--
Chris Lalancette