On Mon, Jan 05, 2026 at 04:57:02PM +0000, Daniel P. Berrangé via Devel wrote:
> On Mon, Dec 22, 2025 at 02:46:33PM -0300, Antonio Terceiro wrote:
> > 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.
> 
> The dependencies on libvirt-guest.service don't neccessarily need to
> care about what the guest OS is doing, they might merely want to delay
> interaction with libvirt until all guests have been auto-started. eg
> so they don't try to start other guests while auto-start is still
> running. So there's still a possibility of regression in behaviour in
> this regard.
> 
> On the other hand, we recently introduced built-in support for autostart
> in the virtqemud/libvirtd daemons which is intended to obsolete use of
> the libvirt-guests.service script. The built-in  support has closer
> conceptual behaviour in that it runs asynchronously once systemd has
> started virtqemud, so no other system service can co-ordinate against
> autostart directly.
> 
> We originally added Type=oneshot in
> 
> commit 79ca7e4e5763795b041e95738c73d4e64bf1024b
> Author: Gerd v. Egidy <[email protected]>
> Date:   Fri Jul 27 17:01:04 2012 +0200
> 
>     libvirt-guests: systemd host shutdown does not work
> 
> but looking at that commit, AFAICT, it was the RemainAfterExit=yes
> line that was the actual fix. That is valid to use with Type=exec
> too, so we didn't need the change to 'oneshot' IIUC

Anyway

Reviewed-by: Daniel P. Berrangé <[email protected]>

and I've merged this fix.

> 
> > 
> > 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
> > 
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Reply via email to