Type=oneshot means that the service is only considered started after the
main process exits. In setups where libvirt-guests is configured to be
used and imposes a delay on the startup of guests, this will cause
systemd to report a quite high boot time as it will wait until all
guests have booted, plus all the delay between them. High boot times are
often reported as issues in monitoring systems, and require operator
attention, while in this case there is not really an issue with the
system, it's just doing what it was configured to do.

With Type=exec, the service is considered started right after the main
process is *started*, but the boot process will not wait for it.

Having other units depend on libvirt-guests.service finishing was
already not reliable because one cannot know how long the OS inside each
guest takes to boot, and libvirt-guests already does not wait for them
to be in any particular state.

Signed-off-by: Antonio Terceiro <[email protected]>
---
 tools/libvirt-guests.service.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
index b044444298..c8e4d3d749 100644
--- a/tools/libvirt-guests.service.in
+++ b/tools/libvirt-guests.service.in
@@ -19,7 +19,7 @@ EnvironmentFile=-@initconfdir@/libvirt-guests
 # out the code
 ExecStart=@libexecdir@/libvirt-guests.sh start
 ExecStop=@libexecdir@/libvirt-guests.sh stop
-Type=oneshot
+Type=exec
 RemainAfterExit=yes
 StandardOutput=journal+console
 TimeoutStopSec=0
-- 
2.51.0

Reply via email to