code: func RegisterServices(services Services) {
  	for name, f := range services {
  		if _, exists := serviceFuncs[name]; exists {
  			panic(fmt.Sprintf("node service already exists: %q", name))
  		}
  		serviceFuncs[name] = f
  	}
  
  	// now we have registered the services, run reexec.Init() which will
  	// potentially start one of the services if the current binary has
  	// been exec'd with argv[0] set to "p2p-node"
  	if reexec.Init() {
  		os.Exit(0)
  	}
  }
docs: // RegisterServices registers the given Services which can then be used to
  // start devp2p nodes using either the Exec or Docker adapters.
  //
  // It should be called in an init function so that it has the opportunity to
  // execute the services before main() is called.