From cdf74f20820a578ea515e67b00a13714ff8bd6f2 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Wed, 23 Feb 2022 14:18:12 -0500 Subject: Set systemd mode if entrypoint begins with /bin/sh -c Fixes: https://github.com/containers/podman/issues/13324 Signed-off-by: Daniel J Walsh --- pkg/specgen/generate/container_create.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'pkg/specgen') diff --git a/pkg/specgen/generate/container_create.go b/pkg/specgen/generate/container_create.go index 8ab0eae5a..a014f5047 100644 --- a/pkg/specgen/generate/container_create.go +++ b/pkg/specgen/generate/container_create.go @@ -304,7 +304,16 @@ func createContainerOptions(ctx context.Context, rt *libpod.Runtime, s *specgen. "/usr/sbin/init": true, "/usr/local/sbin/init": true, } - if useSystemdCommands[command[0]] || (filepath.Base(command[0]) == "systemd") { + // Grab last command incase this is launched from a shell + cmd := command + if len(command) > 2 { + // Podman build will add "/bin/sh" "-c" to + // Entrypoint. Remove and search for systemd + if command[0] == "/bin/sh" && command[1] == "-c" { + cmd = command[2:] + } + } + if useSystemdCommands[cmd[0]] || (filepath.Base(cmd[0]) == "systemd") { useSystemd = true } } -- cgit v1.2.3-54-g00ecf