QEMU Monitor Protocol ===================== Introduction ------------- The QEMU Monitor Protocol (QMP) allows applications to communicate with QEMU's Monitor. QMP is JSON[1] based and has the following features: - Lightweight, text-based, easy to parse data format - Asynchronous events support - Stability For more information, please, refer to the following files: o qmp-spec.txt QEMU Monitor Protocol current specification o qmp-commands.txt QMP supported commands o qmp-events.txt List of available asynchronous events There are also two simple Python scripts available: o qmp-shell A shell o vm-info Show some information about the Virtual Machine [1] http://www.json.org Usage ----- To enable QMP, QEMU has to be started in "control mode". There are two ways of doing this, the simplest one is using the the '-qmp' command-line option. For example: $ qemu [...] -qmp tcp:localhost:4444,server Will start QEMU in control mode, waiting for a client TCP connection on localhost port 4444. It is also possible to use the '-mon' command-line option to have more complex combinations. Please, refer to the QEMU's manpage for more information. Simple Testing -------------- To manually test QMP one can connect with telnet and issue commands: $ telnet localhost 4444 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. {"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}} { "execute": "qmp_capabilities" } {"return": {}} { "execute": "query-version" } {"return": {"qemu": "0.12.50", "package": ""}} Contact ------- http://www.linux-kvm.org/page/MonitorProtocol Luiz Fernando N. Capitulino <lcapitulino@redhat.com>