mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-04 20:31:13 +00:00
1b0c42ff7a
The libvirtd daemon uses systemd-machined D-Bus API when manipulating domains. The systemd-machined is D-Bus activated on demand. However, during system shutdown systemd-machined is stopped concurrently with libvirtd and virsh users also doing their final cleanup may transitively fail due to unavailability of systemd-machined. Example error message > libvirtd[1390]: 2017-12-20 18:55:56.182+0000: 32700: error : virSystemdTerminateMachine:503 : Refusing activation, D-Bus is shutting down. To circumvent this we need to explicitly specify both ordering and requirement dependency (to avoid late D-Bus activation) on systemd-machined. See [1] for the dependency debate. [1] https://lists.freedesktop.org/archives/systemd-devel/2018-January/040095.html
44 lines
1.4 KiB
SYSTEMD
44 lines
1.4 KiB
SYSTEMD
# NB we don't use socket activation. When libvirtd starts it will
|
|
# spawn any virtual machines registered for autostart. We want this
|
|
# to occur on every boot, regardless of whether any client connects
|
|
# to a socket. Thus socket activation doesn't have any benefit
|
|
|
|
[Unit]
|
|
Description=Virtualization daemon
|
|
Requires=virtlogd.socket
|
|
Requires=virtlockd.socket
|
|
Wants=systemd-machined.service
|
|
Before=libvirt-guests.service
|
|
After=network.target
|
|
After=dbus.service
|
|
After=iscsid.service
|
|
After=apparmor.service
|
|
After=local-fs.target
|
|
After=remote-fs.target
|
|
After=systemd-machined.service
|
|
Documentation=man:libvirtd(8)
|
|
Documentation=https://libvirt.org
|
|
|
|
[Service]
|
|
Type=notify
|
|
EnvironmentFile=-/etc/sysconfig/libvirtd
|
|
ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
KillMode=process
|
|
Restart=on-failure
|
|
# At least 1 FD per guest, often 2 (eg qemu monitor + qemu agent).
|
|
# eg if we want to support 4096 guests, we'll typically need 8192 FDs
|
|
# If changing this, also consider virtlogd.service & virtlockd.service
|
|
# limits which are also related to number of guests
|
|
LimitNOFILE=8192
|
|
# 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
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
Also=virtlockd.socket
|
|
Also=virtlogd.socket
|