func New(i *NewInput) (*Child, error) {
	if i == nil {
		i = new(NewInput)
	}

	if len(i.Command) == 0 {
		return nil, ErrMissingCommand
	}

	child := &Child{
		stdin:        i.Stdin,
		stdout:       i.Stdout,
		stderr:       i.Stderr,
		command:      i.Command,
		args:         i.Args,
		env:          i.Env,
		timeout:      i.Timeout,
		reloadSignal: i.ReloadSignal,
		killSignal:   i.KillSignal,
		killTimeout:  i.KillTimeout,
		splay:        i.Splay,
		stopCh:       make(chan struct{}, 1),
	}

	return child, nil
}
func New(i *NewInput) (*Child, error) {
	if i == nil {
		i = new(NewInput)
	}

	if len(i.Command) == 0 {
		return nil, ErrMissingCommand
	}

	child := &Child{
		stdin:        i.Stdin,
		stdout:       i.Stdout,
		stderr:       i.Stderr,
		command:      i.Command,
		args:         i.Args,
		env:          i.Env,
		timeout:      i.Timeout,
		reloadSignal: i.ReloadSignal,
		killSignal:   i.KillSignal,
		killTimeout:  i.KillTimeout,
		splay:        i.Splay,
		stopCh:       make(chan struct{}, 1),
	}

	return child, nil
}
func New ( i * NewInput ) ( * Child , error ) { if i == nil { i = new ( NewInput ) } if len ( i . Command ) == 0 { return nil , ErrMissingCommand } child := & Child { stdin : i . Stdin , stdout : i . Stdout , stderr : i . Stderr , command : i . Command , args : i . Args , env : i . Env , timeout : i . Timeout , reloadSignal : i . ReloadSignal , killSignal : i . KillSignal , killTimeout : i . KillTimeout , splay : i . Splay , stopCh : make ( chan struct { } , 1 ) , } return child , nil }
// New creates a new child process for management with high-level APIs for
// sending signals to the child process, restarting the child process, and
// gracefully terminating the child process.
New creates a new child process for management with high - level APIs for sending signals to the child process restarting the child process and gracefully terminating the child process .