diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2020-12-14 10:43:27 -0500 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2020-12-17 06:36:39 -0500 |
commit | b96c3489d04331b2283ef637e348870c83763f85 (patch) | |
tree | 2676fed3f0d24a9b62a619c2e6be78da17eaf7d9 /cmd/podman/system/service_abi.go | |
parent | 915ae6d9bfa39515d7280f29b5d7d072753cc788 (diff) | |
download | podman-b96c3489d04331b2283ef637e348870c83763f85.tar.gz podman-b96c3489d04331b2283ef637e348870c83763f85.tar.bz2 podman-b96c3489d04331b2283ef637e348870c83763f85.zip |
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 <dwalsh@redhat.com>
Diffstat (limited to 'cmd/podman/system/service_abi.go')
-rw-r--r-- | cmd/podman/system/service_abi.go | 11 |
1 files changed, 11 insertions, 0 deletions
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 |