code: func ServeSignals() (err error) {
  	signals := make([]os.Signal, 0, len(handlers))
  	for sig := range handlers {
  		signals = append(signals, sig)
  	}
  
  	ch := make(chan os.Signal, 8)
  	signal.Notify(ch, signals...)
  
  	for sig := range ch {
  		err = handlers[sig](sig)
  		if err != nil {
  			break
  		}
  	}
  
  	signal.Stop(ch)
  
  	if err == ErrStop {
  		err = nil
  	}
  
  	return
  }
docs: // ServeSignals calls handlers for system signals.