b40292e711
One of the most important missing feature in QMP today is its supported commands documentation. The plan is to make it part of self-description support, however self-description is a big task we have been postponing for a long time now and still don't know when it's going to be done. In order not to compromise QMP adoption and make users' life easier, this commit adds a simple text documentation which fully describes all QMP supported commands. This is not ideal for a number of reasons (harder to maintain, text-only, etc) but does improve the current situation. To avoid at least divering from the user monitor help and texi snippets, QMP bits are also maintained inside qemu-monitor.hx, and hxtool is extended to generate a single text file from them. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
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>
|