code: func Run() {
  
  	flag.Parse()
  
  	if len(flag.Args()) > 0 {
  		mustLogFatal(fmt.Errorf("extra command line arguments: %s", flag.Args()))
  	}
  
  	// Set up process log before anything bad happens
  	if logfile {
  		log.SetOutput(os.Stdout)
  	}
  	log.SetFlags(log.LstdFlags)
  
  	if version {
  		showVersion()
  		os.Exit(0)
  	}
  	if plugins {
  		fmt.Println(caddy.DescribePlugins())
  		os.Exit(0)
  	}
  
  	// Set CPU cap
  	if err := setCPU(cpu); err != nil {
  		mustLogFatal(err)
  	}
  
  	// Get Corefile input
  	corefile, err := caddy.LoadCaddyfile(serverType)
  	if err != nil {
  		mustLogFatal(err)
  	}
  
  	// Start your engines
  	instance, err := caddy.Start(corefile)
  	if err != nil {
  		mustLogFatal(err)
  	}
  
  	logVersion()
  	if !dnsserver.Quiet {
  		showVersion()
  	}
  
  	// Twiddle your thumbs
  	instance.Wait()
  }
docs: // Run is CoreDNS's main() function.