SYSTEM SOCKET ACTIVATION
Daemon-owned sockets and systemd activation
How libvirtd accepts local, TCP, and TLS connections on systemd-based hosts.
Reference core
verify upstream ↗libvirtd supports traditional daemon-owned sockets and systemd socket activation. With socket activation, systemd owns the listening endpoints and starts the service when a client connects.
When systemd socket activation is active, do not start libvirtd with --listen. TCP and TLS listeners are enabled through their corresponding socket units.
systemctl start libvirtd-tls.socket
systemctl start libvirtd-tcp.socket
An inactive libvirtd.service is not automatically a fault. Inspect the socket units and the active connection URI before treating the daemon as unavailable.
Living manual · why this matters
Why can an inactive service still be healthy?
With systemd socket activation the listening endpoint exists independently of the service process. A client connection can cause systemd to start libvirtd on demand and pass the already-open socket to it. Troubleshooting therefore starts with both the .socket and .service units, not the service alone.
Operator checks
$ systemctl status libvirtd.socket libvirtd.service$ systemctl status libvirtd-ro.socket libvirtd-admin.socket$ ss -lx | grep libvirt$ virsh -c qemu:///system uri$ journalctl -u libvirtd.socket -u libvirtd.service -n 100What to notice
- Do not combine --listen with systemd socket activation.
- TCP and TLS listeners are separate socket units in the monolithic model.
- On modular hosts, inspect virtqemud and virtproxyd sockets instead of assuming libvirtd owns the endpoint.
Deep reference