I actually tested about the same. My outer process is running as a systemd service and then starts a podman container as part of its work.//This also does not make sure that the container gets killed when the service gets kill. Systemd kills all process that are part of the service (using KillMode=mixed) but it is not able to kill all podman processes. I assume it is due to them not being in the same cgroup. I can only somewhat resolve it by systemd restarting my service on failure and then I can cleanup any still running container On 6/7/21 4:52 PM, Valentin Rothberg wrote:
On Mon, Jun 7, 2021 at 3:44 PM Hendrik Haddorp <hendrik.haddorp@gmx.net <mailto:hendrik.haddorp@gmx.net>> wrote:
yeah, that's what I switch to now but as you can not trap SIGKILL this does not cover the case A gets killed that way.
Would using systemd be an option for you? The Podman container could be moved into a systemd service (`podman-generate-systemd`). If the unit sets PartOf=parent.service, it should be stopped if parent.service stops. I did not test it but would assume that the container service should also stop if parent is killed.
Kind regards, Valentin
On 6/7/21 3:18 PM, Daniel Walsh wrote:
On 6/4/21 17:30, Hendrik Haddorp wrote:
Hi,
I have a process (A) that starts a podman container as a child process (B). When A dies due to a crash or gets killed I want the container to be killed as well. I tried to start B with all kinds of process attributes, like Setsid = true, Setpgid = true, Pdeathsig = SIGKILL, but B does not get killed and the container runs on. In fact I see that the podman process B has another child process and B seems to get reparented to a "systemd --user" process when A dies.
How can I make sure the podman container dies when the parent process dies? This is on Linux and rootless.
thanks, Hendrik _______________________________________________ Podman mailing list -- podman@lists.podman.io <mailto:podman@lists.podman.io> To unsubscribe send an email to podman-leave@lists.podman.io <mailto:podman-leave@lists.podman.io>
You could trap the exit code and cause it to send a stop signal to podman.
trap "podman stop --timeout 0 CTRID" EXIT
_______________________________________________ Podman mailing list --podman@lists.podman.io <mailto:podman@lists.podman.io> To unsubscribe send an email topodman-leave@lists.podman.io <mailto:podman-leave@lists.podman.io>
_______________________________________________ Podman mailing list -- podman@lists.podman.io <mailto:podman@lists.podman.io> To unsubscribe send an email to podman-leave@lists.podman.io <mailto:podman-leave@lists.podman.io>
_______________________________________________ Podman mailing list -- podman@lists.podman.io To unsubscribe send an email to podman-leave@lists.podman.io