summaryrefslogtreecommitdiff
path: root/cmd/podman/system/service_abi.go
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2020-12-14 10:43:27 -0500
committerDaniel J Walsh <dwalsh@redhat.com>2020-12-17 06:36:39 -0500
commitb96c3489d04331b2283ef637e348870c83763f85 (patch)
tree2676fed3f0d24a9b62a619c2e6be78da17eaf7d9 /cmd/podman/system/service_abi.go
parent915ae6d9bfa39515d7280f29b5d7d072753cc788 (diff)
downloadpodman-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.go11
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