From b96c3489d04331b2283ef637e348870c83763f85 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Mon, 14 Dec 2020 10:43:27 -0500 Subject: Close the stdin/tty when using podman as a restAPI. Currently the service is attempting to prompt on shortname expansion if you run with a terminal. This change will cause the service to default to no terminal and not prompt. Signed-off-by: Daniel J Walsh --- cmd/podman/system/service_abi.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'cmd/podman/system') diff --git a/cmd/podman/system/service_abi.go b/cmd/podman/system/service_abi.go index 8c52616be..ed35fbb04 100644 --- a/cmd/podman/system/service_abi.go +++ b/cmd/podman/system/service_abi.go @@ -5,6 +5,7 @@ package system import ( "context" "net" + "os" "strings" api "github.com/containers/podman/v2/pkg/api/server" @@ -13,6 +14,7 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/spf13/pflag" + "golang.org/x/sys/unix" ) func restService(opts entities.ServiceOptions, flags *pflag.FlagSet, cfg *entities.PodmanConfig) error { @@ -34,6 +36,15 @@ func restService(opts entities.ServiceOptions, flags *pflag.FlagSet, cfg *entiti listener = &l } + // Close stdin, so shortnames will not prompt + devNullfile, err := os.Open(os.DevNull) + if err != nil { + return err + } + defer devNullfile.Close() + if err := unix.Dup2(int(devNullfile.Fd()), int(os.Stdin.Fd())); err != nil { + return err + } rt, err := infra.GetRuntime(context.Background(), flags, cfg) if err != nil { return err -- cgit v1.2.3-54-g00ecf