[systemd-devel] [PATCH] systemd.service(5): clarify behavior of SuccessExitStatus

Lennart Poettering lennart at poettering.net
Fri Dec 27 12:09:21 PST 2013


On Fri, 27.12.13 17:00, Zbigniew Jędrzejewski-Szmek (zbyszek at in.waw.pl) wrote:

> 
> On Fri, Dec 27, 2013 at 10:46:48AM -0500, Dave Reisner wrote:
> > The behavior of this is a little cryptic in that $MAINPID must exit as
> > a direct result of receiving a signal in order for a listed signal to
> > be considered a success condition.
> > ---
> >  man/systemd.service.xml | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/man/systemd.service.xml b/man/systemd.service.xml
> > index 27f069f..c3a9307 100644
> > --- a/man/systemd.service.xml
> > +++ b/man/systemd.service.xml
> > @@ -737,7 +737,10 @@ ExecStart=/bin/echo $ONE $TWO ${TWO}
> >                                  <constant>SIGTERM</constant> and <constant>SIGPIPE</constant>. Exit status
> >                                  definitions can either be numeric exit
> >                                  codes or termination signal names,
> > -                                separated by spaces. Example:
> > +                                separated by spaces. Signals will only
> > +                                be considered if the service does not implement
> > +                                a signal handler and exits as a direct result
> > +                                of receiving the signal. Example:
> >                                  <literal>SuccessExitStatus=1 2 8
> >                                  <constant>SIGKILL</constant></literal>, ensures that exit
> >                                  codes 1, 2, 8 and the termination
> This is incorrect/misleading too. Normally you're supposed to have a
> signal handler, do cleanup, uninstall the handler, and then signal
> yourself again.

We certainly don't do that in systemd... I never heard of that
suggestion, I must say. (Any link where this is suggested?) I must say
that Dave's addition sounded correct to me, even though you do have a
point that one can uninstall the signal handler and trigger the signal
again...

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list