#!/bin/bash # # named -- This shell script takes care of starting and stopping # named (BIND DNS server). # # chkconfig: 345 30 45 # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. [ -r /etc/sysconfig/network ] && . /etc/sysconfig/network NAME=named DAEMON=/usr/sbin/$NAME DAEMONPID=/var/run/$NAME.pid DAEMONCONF=/etc/named.conf DAEMONLOG= OPTIONS= [ -x $DAEMON ] || exit 0 # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 [ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME [ -r ${ROOTDIR}${DAEMONCONF} ] || exit 0 RETVAL=0 # See how we were called. case "$1" in start) echo -n $"Starting $NAME: " if [ -n "$ROOTDIR" -a "x$ROOTDIR" != "x/" ]; then OPTIONS="$OPTIONS -t $ROOTDIR" fi daemon $DAEMON -u named $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME echo # perform a query so we are sure service is working # before the system starts other services dig > /dev/null exit $RETVAL ;; stop) echo -n $"Stopping $NAME: " killproc $DAEMON RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME exit $RETVAL ;; restart|force-reload) $0 stop sleep 1 $0 start ;; condrestart) [ -e /var/lock/subsys/$NAME ] && $0 restart ;; reload) /usr/sbin/rndc -c $ROOTDIR/etc/rndc.conf reload >/dev/null 2>&1 || \ /usr/bin/killall -HUP $NAME exit $? ;; status) /usr/sbin/rndc -c $ROOTDIR/etc/rndc.conf status exit $? ;; probe) # named knows how to reload intelligently; we don't want linuxconf # to offer to restart every time /usr/sbin/rndc -c $ROOTDIR/etc/rndc.conf reload >/dev/null 2>&1 || \ echo start exit $? ;; *) echo $"Usage: ""/etc/init.d/$NAME {start|stop|status|restart|condrestart|reload|probe}" exit 1 ;; esac