diff --git a/shim/exec.go b/shim/exec.go index 514c9ff9d..78c4fd9a9 100644 --- a/shim/exec.go +++ b/shim/exec.go @@ -60,6 +60,20 @@ func newExecProcess(context context.Context, r *apishim.ExecRequest, parent *ini if err := parent.runc.Exec(context, parent.id, processFromRequest(r), opts); err != nil { return nil, err } + if socket != nil { + console, err := socket.ReceiveMaster() + if err != nil { + return nil, err + } + e.console = console + if err := copyConsole(context, console, r.Stdin, r.Stdout, r.Stderr, &e.WaitGroup); err != nil { + return nil, err + } + } else { + if err := copyPipes(context, io, r.Stdin, r.Stdout, r.Stderr, &e.WaitGroup); err != nil { + return nil, err + } + } pid, err := runc.ReadPidFile(opts.PidFile) if err != nil { return nil, err