When named is running incorrectly, look first in /var/log/messages and check for any messages logged by syslog. Next send it a signal to see what is happening. Unless you run it with the ``-d'' option, named has very little to say on its standard output or standard error. Everything named has to say, it says to syslog.
SIGINT - Dumps the current data base and cache to /var/tmp/named_dump.db This should give you an indication to whether the data base was loaded correctly. The name of the dump file may be changed by defining DUMPFILE to the new name when compiling named.
Note: the following two signals only work when named is built with DEBUG defined.
SIGUSR1 - Turns on debugging. Each following SIGUSR1 increments the debug level. The output goes to /var/tmp/named.run The name of this debug file may be changed by defining DEBUGFILE to the new name before compiling named.
SIGUSR2 - Turns off debugging completely.
For more detailed debugging, define DEBUG when compiling the resolver routines into /lib/libc.a.
SIGWINCH - Toggles tracing of all incoming queries if named has been compiled with QRYLOG defined. The trace is sent to syslog, and is huge, but it is very useful for tracking down problems.
To run with tracing of all queries specify the -q flag on the command line. If you routinely log queries you will probably want to analyze the results using the dnsstats stats script in the contrib directory.
SIGIOT - Dumps statistics data into /var/tmp/named.stats if the server is built with STATS defined. Statistics are appended to the file.