code: func spawnChild(i *spawnChildInput) (*child.Child, error) {
  	p := shellwords.NewParser()
  	p.ParseEnv = true
  	p.ParseBacktick = true
  	args, err := p.Parse(i.Command)
  	if err != nil {
  		return nil, errors.Wrap(err, "failed parsing command")
  	}
  
  	child, err := child.New(&child.NewInput{
  		Stdin:        i.Stdin,
  		Stdout:       i.Stdout,
  		Stderr:       i.Stderr,
  		Command:      args[0],
  		Args:         args[1:],
  		Env:          i.Env,
  		Timeout:      i.Timeout,
  		ReloadSignal: i.ReloadSignal,
  		KillSignal:   i.KillSignal,
  		KillTimeout:  i.KillTimeout,
  		Splay:        i.Splay,
  	})
  	if err != nil {
  		return nil, errors.Wrap(err, "error creating child")
  	}
  
  	if err := child.Start(); err != nil {
  		return nil, errors.Wrap(err, "child")
  	}
  	return child, nil
  }
docs: // spawnChild spawns a child process with the given inputs and returns the
  // resulting child.