code: func (o *Options) runLoop() error {
  	if o.watcher != nil {
  		o.watcher.Run()
  	}
  
  	// run the proxy in goroutine
  	go func() {
  		err := o.proxyServer.Run()
  		o.errCh <- err
  	}()
  
  	for {
  		select {
  		case err := <-o.errCh:
  			if err != nil {
  				return err
  			}
  		}
  	}
  }
docs: // runLoop will watch on the update change of the proxy server's configuration file.
  // Return an error when updated