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(a)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(a)lists.podman.io
>> <mailto:podman@lists.podman.io>
>> To unsubscribe send an email to podman-leave(a)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(a)lists.podman.io
<mailto:podman@lists.podman.io>
> To unsubscribe send an email topodman-leave(a)lists.podman.io
<mailto:podman-leave@lists.podman.io>
_______________________________________________
Podman mailing list -- podman(a)lists.podman.io
<mailto:podman@lists.podman.io>
To unsubscribe send an email to podman-leave(a)lists.podman.io
<mailto:podman-leave@lists.podman.io>
_______________________________________________
Podman mailing list -- podman(a)lists.podman.io
To unsubscribe send an email to podman-leave(a)lists.podman.io