code: func (k *Kite) Run() {
  	if os.Getenv("KITE_VERSION") != "" {
  		fmt.Println(k.Kite().Version)
  		os.Exit(0)
  	}
  
  	// An error string equivalent to net.errClosing for using with http.Serve()
  	// during a graceful exit. Needed to declare here again because it is not
  	// exported by "net" package.
  	const errClosing = "use of closed network connection"
  
  	err := k.listenAndServe()
  	if err != nil {
  		if strings.Contains(err.Error(), errClosing) {
  			// The server is closed by Close() method
  			k.Log.Info("Kite server is closed.")
  			return
  		}
  		k.Log.Fatal(err.Error())
  	}
  }
docs: // Run is a blocking method. It runs the kite server and then accepts requests
  // asynchronously. It supports graceful restart via SIGUSR2.