code: func ForwardSignals(cmd *exec.Cmd, logFn func(error), shutdownCh <-chan struct{}) {
  	go func() {
  		signalCh := make(chan os.Signal, 10)
  		signal.Notify(signalCh, forwardSignals...)
  		defer signal.Stop(signalCh)
  
  		for {
  			select {
  			case sig := <-signalCh:
  				if err := cmd.Process.Signal(sig); err != nil {
  					logFn(fmt.Errorf("failed to send signal %q: %v", sig, err))
  				}
  
  			case <-shutdownCh:
  				return
  			}
  		}
  	}()
  }
docs: // ForwardSignals will fire up a goroutine to forward signals to the given
  // subprocess until the shutdown channel is closed.