User Guide

Machine lifecycle

Start and stop a real QEMU process through QMP.

Available now

The current build starts and stops real QEMU processes. A machine is shown as running only while its QEMU process is alive. The lifecycle currently requires a Linux x86_64 host and x86_64 guests.

Start

Start validates that the recorded disk still exists and is inside the Wave VM data directory, confirms QEMU is available, and refuses a duplicate launch when a live QMP endpoint is already present. QEMU is launched with the configured memory, virtual CPUs, and QCOW2 disk.

  • KVM is used when the /dev/kvm probe succeeds.
  • If KVM is unavailable or the KVM attempt fails, QEMU is retried with TCG software emulation.
  • QEMU starts with no guest network device.
  • The QMP control socket is a private Unix domain socket in the machine directory.
  • A running state is persisted only after QMP reports that QEMU is running.

Stop

Stop sends system_powerdown through QMP and waits for QEMU to exit. If it does not exit within the timeout, Wave VM sends a QMP quit, then SIGTERM, and finally a forced kill if necessary. The QMP socket is removed after the process exits.

Process tracking

  • The child process is tracked in application state while the desktop app is running.
  • Unexpected exits are detected through polling and reflected in the persisted state.
  • Persisted starting, running, or stopping states are reconciled when the application starts.
  • QEMU stdout and stderr are written to vms/<machine-id>/qemu.log.

Cleanup after a force-kill is not guaranteed

Normal application exit stops tracked QEMU processes. If the desktop process is force-killed, an already running QEMU child may survive. Wave VM will block a duplicate launch while it can detect a live QMP endpoint, but it cannot guarantee recovery from every orphaned process.

Not implemented

  • Reset, pause, resume, or snapshot operations.
  • Guest networking, port forwarding, or USB passthrough.
  • Installing a guest operating system or attaching installation media.
  • Automatic recovery of an orphaned QEMU process after a desktop crash.

See Graphical console for the running guest display and the roadmap for the implementation evidence.