[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