code: func (c *Cmd) Wait() error {
  	<-c.exitCh
  
  	c.Lock()
  	defer c.Unlock()
  
  	if c.err != nil || c.exitStatus != 0 {
  		return &ExitError{
  			Command:    c.Command,
  			ExitStatus: c.exitStatus,
  			Err:        c.err,
  		}
  	}
  
  	return nil
  }
docs: // Wait waits for the remote command to complete.
  // Wait may return an error from the communicator, or an ExitError if the
  // process exits with a non-zero exit status.