Make sure failed containers get stopped by systemd
When the main PID (i.e., common) of a container is killed because of some reasons, systemd won't execute ExecStop command. Current podman doesn't detect this failure ang recognize that container is still running and this causes failure when systemd tries to restart the container. This patch introduces ExecStopPost configuration into systemd unit files so that stop operation is executed even when a container fails because of killed main process. The stale container should be cleaned up by ExecStopPost task before systemd tries to restart it. Note that the similar change has been introcuded to "podman generate systemd" command already[1]. [1] https://github.com/containers/libpod/commit/e5c3432944245a740ed443803c654dcc9c3757f0 Change-Id: Idb8be98f83f95ae536762f79809aa375f04e56ab Closes-Bug: #1884866
This commit is contained in:
@@ -14,6 +14,7 @@ ExecReload=/usr/bin/podman kill --signal HUP {{ lookup('dict', container_data_un
|
||||
ExecStop=-/usr/bin/podman exec {{ lookup('dict', container_data_unit).key }} {{ lookup('dict', container_data_unit).value.pre_stop_exec }}
|
||||
{% endif %}
|
||||
ExecStop=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data_unit).key }}
|
||||
ExecStopPost=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data_unit).key }}
|
||||
KillMode=none
|
||||
Type=forking
|
||||
PIDFile=/var/run/{{ lookup('dict', container_data_unit).key }}.pid
|
||||
|
||||
Reference in New Issue
Block a user