code: func Start(cdyfile Input) (*Instance, error) {
  	defer func() {
  		// notify systemd that startup is complete
  		_, err := daemon.SdNotify(true, "READY=1")
  		if err != nil {
  			fmt.Fprintf(os.Stderr, "Error sending systemd ready notification %s\n", err.Error())
  		}
  	}()
  	writePidFile()
  	inst := &Instance{serverType: cdyfile.ServerType(), wg: new(sync.WaitGroup)}
  	return inst, startWithListenerFds(cdyfile, inst, nil)
  }
docs: // Start starts Caddy with the given Caddyfile.
  //
  // This function blocks until all the servers are listening.