code: func (p *Process) Backup() (io.ReadCloser, error) {
  	r := &backupReadCloser{}
  
  	cmd := exec.Command(
  		filepath.Join(p.BinDir, "innobackupex"),
  		"--defaults-file="+p.ConfigPath(),
  		"--host=127.0.0.1",
  		"--port="+p.Port,
  		"--user=flynn",
  		"--password="+p.Password,
  		"--socket=",
  		"--stream=xbstream",
  		".",
  	)
  	cmd.Dir = p.DataDir
  	cmd.Stderr = &r.stderr
  
  	stdout, err := cmd.StdoutPipe()
  	if err != nil {
  		return nil, err
  	}
  	if err := cmd.Start(); err != nil {
  		stdout.Close()
  		return nil, err
  	}
  
  	// Attach to reader wrapper.
  	r.cmd = cmd
  	r.stdout = stdout
  
  	return r, nil
  }
docs: // Backup returns a reader for streaming a backup in xbstream format.