[Unit] Description=libvirt legacy monolithic daemon Documentation=man:libvirtd(8) Documentation=https://libvirt.org/ # Use Wants instead of Requires so that users # can disable these three .socket units to revert # to a traditional non-activation deployment setup Wants=libvirtd.socket Wants=libvirtd-ro.socket Wants=libvirtd-admin.socket After=libvirtd.socket After=libvirtd-ro.socket After=libvirtd-admin.socket Requires=virtlogd.socket Wants=virtlockd.socket After=virtlogd.socket After=virtlockd.socket Wants=systemd-machined.service After=network.target After=dbus.service After=iscsid.service After=apparmor.service After=remote-fs.target After=systemd-machined.service After=xencommons.service After=qemu-kvm.service Conflicts=xendomains.service [Service] Type=notify Environment=LIBVIRTD_ARGS="--timeout 120" EnvironmentFile=-/etc/default/libvirtd ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure # Raise hard limits to match behaviour of systemd >= 240. # During startup, daemon will set soft limit to match hard limit # per systemd recommendations LimitNOFILE=1024:524288 # The cgroups pids controller can limit the number of tasks started by # the daemon, which can limit the number of domains for some hypervisors. # A conservative default of 8 tasks per guest results in a TasksMax of # 32k to support 4096 guests. TasksMax=32768 # With cgroups v2 there is no devices controller anymore, we have to use # eBPF to control access to devices. In order to do that we create a eBPF # hash MAP which locks memory. The default map size for 64 devices together # with program takes 12k per guest. After rounding up we will get 64M to # support 4096 guests. LimitMEMLOCK=64M [Install] WantedBy=multi-user.target Also=virtlockd.socket Also=virtlogd.socket Also=libvirtd.socket Also=libvirtd-ro.socket Also=libvirtd-admin.socket