qemu/docs/qmp-intro.txt
<<
>>
Prefs
   1                          QEMU Machine Protocol
   2                          =====================
   3
   4Introduction
   5------------
   6
   7The QEMU Machine Protocol (QMP) allows applications to operate a
   8QEMU instance.
   9
  10QMP is JSON[1] based and features the following:
  11
  12- Lightweight, text-based, easy to parse data format
  13- Asynchronous messages support (ie. events)
  14- Capabilities Negotiation
  15
  16For detailed information on QMP's usage, please, refer to the following files:
  17
  18o qmp-spec.txt      QEMU Machine Protocol current specification
  19o qmp-commands.txt  QMP supported commands (auto-generated at build-time)
  20o qmp-events.txt    List of available asynchronous events
  21
  22[1] http://www.json.org
  23
  24Usage
  25-----
  26
  27You can use the -qmp option to enable QMP. For example, the following
  28makes QMP available on localhost port 4444:
  29
  30$ qemu [...] -qmp tcp:localhost:4444,server,nowait
  31
  32However, for more flexibility and to make use of more options, the -mon
  33command-line option should be used. For instance, the following example
  34creates one HMP instance (human monitor) on stdio and one QMP instance
  35on localhost port 4444:
  36
  37$ qemu [...] -chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
  38             -chardev socket,id=mon1,host=localhost,port=4444,server,nowait \
  39             -mon chardev=mon1,mode=control,pretty=on
  40
  41Please, refer to QEMU's manpage for more information.
  42
  43Simple Testing
  44--------------
  45
  46To manually test QMP one can connect with telnet and issue commands by hand:
  47
  48$ telnet localhost 4444
  49Trying 127.0.0.1...
  50Connected to localhost.
  51Escape character is '^]'.
  52{
  53    "QMP": {
  54        "version": {
  55            "qemu": {
  56                "micro": 50, 
  57                "minor": 6, 
  58                "major": 1
  59            }, 
  60            "package": ""
  61        }, 
  62        "capabilities": [
  63        ]
  64    }
  65}
  66
  67{ "execute": "qmp_capabilities" }
  68{
  69    "return": {
  70    }
  71}
  72
  73{ "execute": "query-status" }
  74{
  75    "return": {
  76        "status": "prelaunch", 
  77        "singlestep": false, 
  78        "running": false
  79    }
  80}
  81
  82Please, refer to the qapi-schema.json file for a complete command reference.
  83
  84QMP wiki page
  85-------------
  86
  87http://wiki.qemu-project.org/QMP
  88