Instruct systemd to accept 137 and 143 exit code

It might happen a container takes time to stop its running process - it
therefore will call "SIGTERM" or "SIGKILL", and conmon will return the
actual process exit code.
Since the exit code won't be 0, it will be marked as "failed" in systemd
status.

Note that 137 is, actually, SIGKILL (137-128 = 9) and 143 is SIGTERM
(143-128 = 15).
While systemd accepts actual SIGTERM by default, it doesn't recognize that
143 exit status. We therefore have to namely point to this status code.
Also, by default, SIGKILL isn't accepted as a valid, successful exit status.

This change will needs to be backported down to stable/ussuri - and is
the equivalent of Iffcfc8bd18a999ae6921a4131d40241df40050f1

Change-Id: I8f19a80016a67ccad0371c5d108516aec640f031
(cherry picked from commit d70250bf18)
(cherry picked from commit 82b4f8c3aa)
This commit is contained in:
Cédric Jeanneret 2020-10-06 17:20:01 +02:00
parent 85853e67ed
commit 46b6836318
1 changed files with 1 additions and 0 deletions

View File

@ -12,6 +12,7 @@ ExecStart=/usr/bin/podman start {{ lookup('dict', container_data).key }}
ExecReload=/usr/bin/podman kill --signal HUP {{ lookup('dict', container_data).key }}
ExecStop=/usr/bin/podman stop -t {{ lookup('dict', container_data).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data).key }}
ExecStopPost=/usr/bin/podman stop -t {{ lookup('dict', container_data).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data).key }}
SuccessExitStatus=137 143
KillMode=none
Type=forking
PIDFile=/var/run/{{ lookup('dict', container_data).key }}.pid