func (t *tty) recvtty(process *libcontainer.Process, detach bool) error { console, err := process.GetConsole() if err != nil { return err } if !detach { go io.Copy(console, os.Stdin) t.wg.Add(1) go t.copyIO(os.Stdout, console) state, err := term.SetRawTerminal(os.Stdin.Fd()) if err != nil { return fmt.Errorf("failed to set the terminal from the stdin: %v", err) } t.state = state } t.console = console t.closers = []io.Closer{console} return nil }