[rescue] my last bind9 gripe 8-)

Loomis, Rip rescue at sunhelp.org
Mon Oct 22 15:15:39 CDT 2001


> 
> I got rndc working, but its got a pet peeve:
> 
> IT ONLY WORKS IF NAMED IS ALREADY RUNNING.
>

The change is intentional.
Look at it this way:
1.  All the old "ndc" did when you gave it
	an "ndc start" was to issue a system()
	call:

  static void
  start_named(const char *syscmd, int local_quiet) {
	pid_t pid;

	if (system(syscmd) != 0)
		error("could not start new name server (%s)", syscmd);
	else {
		sleep(3);
		if (!running(0, &pid))
			error("name server has not started (yet?)");
		else if (!local_quiet)
			result("new pid is %ld", (long)pid);
	}
  } 

   so typing "ndc start" is *exactly* equivalent
   to typing "named" on the same system, with normal
   paths and installation locations.

2.  For *remote* systems, or for any communications
   over network sockets, something needs to be listening
   on the other end...you can't expect the non-running
   named to be listening and know that it needs to
   be started.  Therefore, even if they had included
   an "rndc start" function, it would only have worked
   for local named's, and not for remote ones.

3.  Most of us here had to un-learn the "ndc start" methodology...
   but then again, if you're running BIND chrooted 
   as a non-root user, you probably have a start-up
   script anyway...which (again) is something that
   should be done through external tools and commands
   rather than as a built-in for rndc.

Does that make any sort of sense?

  --Rip



More information about the rescue mailing list