code: func (g *Graceful) Run() {
  	if isMaster() {
  		env := g.Env
  		if env == nil {
  			env = defaultEnv
  		}
  		env.Go(g.runMaster)
  		return
  	}
  
  	lns, err := restoreListeners(listenEnv)
  	if err != nil {
  		log.ErrorExit(err)
  	}
  	log.DefaultLogger().SetDefaults(map[string]interface{}{
  		"pid": os.Getpid(),
  	})
  	log.Info("well: new child", nil)
  	g.Serve(lns)
  
  	// child process should not return.
  	os.Exit(0)
  	return
  }
docs: // Run runs the graceful restarting server.
  //
  // If this is the master process, Run starts a child process,
  // and installs SIGHUP handler to restarts the child process.
  //
  // If this is a child process, Run simply calls g.Serve.
  //
  // Run returns immediately in the master process, and never
  // returns in the child process.