Statistics
| Branch: | Revision:

root / QMP / README @ 8cfacf07

History | View | Annotate | Download (1.7 kB)

1 26d5a1cd Luiz Capitulino
                          QEMU Monitor Protocol
2 26d5a1cd Luiz Capitulino
                          =====================
3 26d5a1cd Luiz Capitulino
4 26d5a1cd Luiz Capitulino
Introduction
5 26d5a1cd Luiz Capitulino
-------------
6 26d5a1cd Luiz Capitulino
7 052f1b9b Luiz Capitulino
The QEMU Monitor Protocol (QMP) allows applications to communicate with
8 052f1b9b Luiz Capitulino
QEMU's Monitor.
9 26d5a1cd Luiz Capitulino
10 052f1b9b Luiz Capitulino
QMP is JSON[1] based and has the following features:
11 052f1b9b Luiz Capitulino
12 052f1b9b Luiz Capitulino
- Lightweight, text-based, easy to parse data format
13 052f1b9b Luiz Capitulino
- Asynchronous events support 
14 052f1b9b Luiz Capitulino
- Stability
15 26d5a1cd Luiz Capitulino
16 26d5a1cd Luiz Capitulino
For more information, please, refer to the following files:
17 26d5a1cd Luiz Capitulino
18 052f1b9b Luiz Capitulino
o qmp-spec.txt    QEMU Monitor Protocol current specification
19 26d5a1cd Luiz Capitulino
o qmp-events.txt  List of available asynchronous events
20 26d5a1cd Luiz Capitulino
21 26d5a1cd Luiz Capitulino
There are also two simple Python scripts available:
22 26d5a1cd Luiz Capitulino
23 26d5a1cd Luiz Capitulino
o qmp-shell       A shell
24 052f1b9b Luiz Capitulino
o vm-info         Show some information about the Virtual Machine
25 26d5a1cd Luiz Capitulino
26 26d5a1cd Luiz Capitulino
[1] http://www.json.org
27 26d5a1cd Luiz Capitulino
28 26d5a1cd Luiz Capitulino
Usage
29 26d5a1cd Luiz Capitulino
-----
30 26d5a1cd Luiz Capitulino
31 052f1b9b Luiz Capitulino
To enable QMP, QEMU has to be started in "control mode". There are
32 052f1b9b Luiz Capitulino
two ways of doing this, the simplest one is using the the '-qmp'
33 052f1b9b Luiz Capitulino
command-line option.
34 26d5a1cd Luiz Capitulino
35 26d5a1cd Luiz Capitulino
For example:
36 26d5a1cd Luiz Capitulino
37 052f1b9b Luiz Capitulino
$ qemu [...] -qmp tcp:localhost:4444,server
38 26d5a1cd Luiz Capitulino
39 26d5a1cd Luiz Capitulino
Will start QEMU in control mode, waiting for a client TCP connection
40 26d5a1cd Luiz Capitulino
on localhost port 4444.
41 26d5a1cd Luiz Capitulino
42 052f1b9b Luiz Capitulino
It is also possible to use the '-mon' command-line option to have
43 052f1b9b Luiz Capitulino
more complex combinations. Please, refer to the QEMU's manpage for
44 052f1b9b Luiz Capitulino
more information.
45 052f1b9b Luiz Capitulino
46 052f1b9b Luiz Capitulino
Simple Testing
47 052f1b9b Luiz Capitulino
--------------
48 052f1b9b Luiz Capitulino
49 052f1b9b Luiz Capitulino
To manually test QMP one can connect with telnet and issue commands:
50 26d5a1cd Luiz Capitulino
51 26d5a1cd Luiz Capitulino
$ telnet localhost 4444
52 052f1b9b Luiz Capitulino
Trying 127.0.0.1...
53 26d5a1cd Luiz Capitulino
Connected to localhost.
54 26d5a1cd Luiz Capitulino
Escape character is '^]'.
55 ca9567e2 Luiz Capitulino
{"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}}
56 ca9567e2 Luiz Capitulino
{ "execute": "qmp_capabilities" }
57 ca9567e2 Luiz Capitulino
{"return": {}}
58 26d5a1cd Luiz Capitulino
{ "execute": "query-version" }
59 ca9567e2 Luiz Capitulino
{"return": {"qemu": "0.12.50", "package": ""}}
60 26d5a1cd Luiz Capitulino
61 26d5a1cd Luiz Capitulino
Contact
62 26d5a1cd Luiz Capitulino
-------
63 26d5a1cd Luiz Capitulino
64 26d5a1cd Luiz Capitulino
http://www.linux-kvm.org/page/MonitorProtocol
65 26d5a1cd Luiz Capitulino
Luiz Fernando N. Capitulino <lcapitulino@redhat.com>