Skip to navigationSkip to content
libvirtd docs
Commands

Manual nav

Search `/` or jump with `g` / `G`.

Portal

  • Home manual
  • Command explorer
Foundations6 sections
  • Overview1
  • Installation2
  • Platform1
  • Concepts6
  • Domains2
  • Domain XML2
Subsystems9 sections
  • Identity1
  • Automation2
  • Daemons3
  • virsh3
  • Networking5
  • Storage4
  • Security3
  • Observability2
  • Remote Access1
Operations6 sections
  • Migration2
  • Backup2
  • Performance3
  • Recovery1
  • Troubleshooting2
  • References2

/ search · g top · G quickstart

guideconceptsReviewed July 16, 2026

Fingerprint the libvirt Daemon Topology

Do not infer the active libvirt control plane from the distribution name or installed packages. Use the daemon topology decoder to classify observed systemd socket evidence before restarting a service. Classic monolithic

libvirtdvirtqemudvirtproxydsocketssystemd

Do not infer the active libvirt control plane from the distribution name or installed packages. Use the daemon topology decoder to classify observed systemd socket evidence before restarting a service.

Classic monolithic path

The historical libvirtd daemon combines hypervisor and secondary drivers behind the traditional /run/libvirt/libvirt-sock endpoint. On a systemd host, socket activation may own the listener even when the service is not continuously active.

Modular direct path

The modular architecture splits drivers into daemons such as virtqemud, virtnetworkd, and virtstoraged. QEMU clients can connect to the virtqemud socket while network and storage requests cross separate daemon boundaries.

Compatibility proxy path

virtproxyd preserves the traditional libvirt socket for clients and forwards requests to the appropriate modular daemon. A reachable compatibility endpoint therefore does not prove that the downstream QEMU driver is healthy.

Conflicting evidence

Treat simultaneous monolithic and modular ownership signals as ambiguous until systemctl status, socket triggers, and ss -lxnp identify the listener. Do not enable, disable, or restart competing units to discover ownership by trial and error.

Minimum inspection set

BASH
systemctl is-active libvirtd.socket virtproxyd.socket virtqemud.socket
systemctl list-sockets 'libvirt*' 'virt*'
ss -lxnp | grep -E 'libvirt|virtqemu'
virsh -c qemu:///system uri

Related

  • libvirtd overview and the compatibility daemon
  • Control plane, drivers, and execution plane
  • virtqemud and virtproxyd roles

On this page

  • Classic monolithic path
  • Modular direct path
  • Compatibility proxy path
  • Conflicting evidence
  • Minimum inspection set