code: func ShutdownHandler(server Shutdowner) {
  	sigc := make(chan os.Signal, 3)
  	signal.Notify(sigc, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM)
  	go func() {
  		for s := range sigc {
  			name := s.String()
  			if sig, ok := s.(syscall.Signal); ok {
  				name = signalName(sig)
  			}
  			log.Infof("Received %v, initiating shutdown...", name)
  			server.Shutdown()
  		}
  	}()
  }
docs: // ShutdownHandler configures signal handling and initiates a shutdown if a
  // SIGINT, SIGQUIT or SIGTERM is received by the process.