[systemd-devel] Conditional clean up action

Mircea Husz mirceahusz at yahoo.com
Fri Jan 5 19:04:52 UTC 2018


On Fri, 2018-01-05 at 09:55 +0100, Michal Sekletar wrote:
> On Thu, Jan 4, 2018 at 9:50 PM, Mircea Husz <mirceahusz at yahoo.com>
> wrote:
> > Migrating an init script to systemd, and need to archive logs only
> > if the
> > service exited normally with a return code 0. I found
> > $SERVICE_RESULT,
> > $EXIT_CODE, and $EXIT_STATUS  but they are in a newer version of
> > systemd, I
> > am stuck with version 219 on CentOS 7.
> > 
> > I'd love to run ExecStopPost on a conditional exit status but
> > that's just
> > not available. Before I get creative with Pre, Start, and Post bash
> > scripts,
> > is there any straightforward way of handling this kind of thing
> > with systemd
> > ?
> 
> You could query the exit code in post script via systemctl show, the
> property is called ExecMainCode. Btw, in case you have RH
> subscription
> then please open a support case and we can backport this
> functionality
> to RHEL/CentOS.
> 
> Cheers,
> 
> Michal

Thank you, you're getting me on the right path. I found that
ExecMainCode returned 1 when the process
 was brought down gracefully, but in the process (no pun intended) of
testing I discovered ExecMainStatus. 
Its value is 0 on normal termination, and non-zero when I cause it to
crash. However this might be all 
coincidental and don't want to infer what the properties mean based on
these observations.

They do seem to mirror the values listed in systemd status output, as
in: (code=exited, status=0/SUCCESS)

I'd like to find documentation on these properties and didn't find any;
can you point me in the right direction?
I searched the github repo, stumbled upon run_context_update 
https://github.com/systemd/systemd/blob/32827740505dab1b7138b3a51a545cd
4191b8265/src/run/run.c
which to the untrained eye seems to say that ExecMainCode is the
exit_code and ExecMainStatus is the exit_status
However the values don't match https://www.freedesktop.org/software/sys
temd/man/systemd.exec.html#%24EXIT_CODE

ExecMainStatus might be the return status of the process, but I'd like
to find some documentation that confirms it. 
-Mike

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20180105/095a77fb/attachment.html>


More information about the systemd-devel mailing list