diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2020-01-16 15:46:39 +0100 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2020-01-16 16:36:21 +0100 |
commit | 9d3667c2f025e1e36f3fdbd7348e0e14d00e336d (patch) | |
tree | 2c5b2ce726f1cc0de69097b8a45b9a25241a1bf8 | |
parent | db00ee97e950290a6bc5d669cde0cbc54bb94afe (diff) | |
download | podman-9d3667c2f025e1e36f3fdbd7348e0e14d00e336d.tar.gz podman-9d3667c2f025e1e36f3fdbd7348e0e14d00e336d.tar.bz2 podman-9d3667c2f025e1e36f3fdbd7348e0e14d00e336d.zip |
systemdgen: add --ignore flag to generic services
The --ignore flag lets Podman ignore errors when a specified container
does not exist (anymore). That's a nice addition to generic services
generated via the --new flag. Those services create new containers and
can hence allows user to manually remove a container; may it only be by
accident.
The important part of using the --ignore flag is that Podman will exit 0
which plays nicer with most restart policies; a non-zero exit may yield
systemd to restart the entire service which is arguably wrong if the
user manually deletes the container.
If desired, users can still alter the generated files.
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
-rw-r--r-- | pkg/systemdgen/systemdgen.go | 4 | ||||
-rw-r--r-- | pkg/systemdgen/systemdgen_test.go | 4 | ||||
-rw-r--r-- | test/e2e/generate_systemd_test.go | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/pkg/systemdgen/systemdgen.go b/pkg/systemdgen/systemdgen.go index b6167a23e..745b708e4 100644 --- a/pkg/systemdgen/systemdgen.go +++ b/pkg/systemdgen/systemdgen.go @@ -96,8 +96,8 @@ Restart={{.RestartPolicy}} {{- if .New}} ExecStartPre=/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStart={{.RunCommand}} -ExecStop={{.Executable}} stop --cidfile /%t/%n-cid {{if (ge .StopTimeout 0)}}-t {{.StopTimeout}}{{end}} -ExecStopPost={{.Executable}} rm -f --cidfile /%t/%n-cid +ExecStop={{.Executable}} stop --ignore --cidfile /%t/%n-cid {{if (ge .StopTimeout 0)}}-t {{.StopTimeout}}{{end}} +ExecStopPost={{.Executable}} rm --ignore -f --cidfile /%t/%n-cid PIDFile=/%t/%n-pid {{- else}} ExecStart={{.Executable}} start {{.ContainerName}} diff --git a/pkg/systemdgen/systemdgen_test.go b/pkg/systemdgen/systemdgen_test.go index 3894a0205..9c6933d17 100644 --- a/pkg/systemdgen/systemdgen_test.go +++ b/pkg/systemdgen/systemdgen_test.go @@ -123,8 +123,8 @@ Documentation=man:podman-generate-systemd(1) Restart=always ExecStartPre=/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStart=/usr/bin/podman run --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid --name jadda-jadda --hostname hello-world awesome-image:latest command arg1 ... argN -ExecStop=/usr/bin/podman stop --cidfile /%t/%n-cid -t 42 -ExecStopPost=/usr/bin/podman rm -f --cidfile /%t/%n-cid +ExecStop=/usr/bin/podman stop --ignore --cidfile /%t/%n-cid -t 42 +ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile /%t/%n-cid PIDFile=/%t/%n-pid KillMode=none Type=forking diff --git a/test/e2e/generate_systemd_test.go b/test/e2e/generate_systemd_test.go index f0fef41a4..d0dadd09d 100644 --- a/test/e2e/generate_systemd_test.go +++ b/test/e2e/generate_systemd_test.go @@ -191,7 +191,7 @@ var _ = Describe("Podman generate systemd", func() { found, _ := session.GrepString("# container-foo.service") Expect(found).To(BeTrue()) - found, _ = session.GrepString("stop --cidfile /%t/%n-cid -t 42") + found, _ = session.GrepString("stop --ignore --cidfile /%t/%n-cid -t 42") Expect(found).To(BeTrue()) }) |