[libvirt] [PATCH] Configuring systemd to restart libvirt on abort

Dan Kenigsberg danken at redhat.com
Tue Jul 30 13:27:37 UTC 2013


On Tue, Jul 30, 2013 at 05:43:16AM -0400, Mooli Tayer wrote:
> 
> ----- Original Message -----
> > On Mon, Jul 29, 2013 at 05:36:21PM +0300, Mooli Tayer wrote:
> > > From: Mooli Tayer <mtayer at redhat.com>
> > > 
> > > This will create a respawn behaviour in case libvirt
> > > process exits due to an uncaught signal not specified
> > > as a clean exit status.
> > > see http://www.freedesktop.org/software/systemd/man/systemd.service.html
> > > ---
> > >  daemon/libvirtd.service.in | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/daemon/libvirtd.service.in b/daemon/libvirtd.service.in
> > > index aa5913b..b3c0849 100644
> > > --- a/daemon/libvirtd.service.in
> > > +++ b/daemon/libvirtd.service.in
> > > @@ -15,6 +15,7 @@ EnvironmentFile=-/etc/sysconfig/libvirtd
> > >  ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
> > >  ExecReload=/bin/kill -HUP $MAINPID
> > >  KillMode=process
> > > +Restart=on-abort
> > >  # Override the maximum number of opened files
> > >  #LimitNOFILE=2048
> > 
> > I'm wondering whether 'on-abort' is the best choice or if
> > 'on-failure' or 'always' are better. The systemd.service
> > man page says
> > 
> > [quote]
> >            Takes one of no, on-success, on-failure,
> >            on-abort, or always. If set to no (the
> >            default) the service will not be restarted. If
> >            set to on-success it will be restarted only
> >            when the service process exits cleanly. In
> >            this context, a clean exit means an exit code
> >            of 0, or one of the signals SIGHUP, SIGINT,
> >            SIGTERM, or SIGPIPE, and additionally, exit
> >            statuses and signals specified in
> >            SuccessExitStatus=. If set to on-failure the
> >            service will be restarted when the process
> >            exits with an nonzero exit code, is terminated
> >            by a signal (including on core dump), when an
> >            operation (such as service reload) times out,
> >            and when the configured watchdog timeout is
> >            triggered. If set to on-abort the service will
> >            be restarted only if the service process exits
> >            due to an uncaught signal not specified as a
> >            clean exit status. If set to always the
> >            service will be restarted regardless whether
> >            it exited cleanly or not, got terminated
> >            abnormally by a signal or hit a timeout.
> > [/quote]
> > 
> > I tend towards saying 'on-failure' here.
> 
> I agree. we defiantly want restart in the 'on-failure'
> cases.

Would 'on-failure' mean that libvirtd is to be restarted if it has
exited with an error due to wrong configuration? This may spell nasty
thrashing of systemd.

Dan.




More information about the libvir-list mailing list