Sophie

Sophie

distrib > Mandriva > 2006.0 > x86_64 > by-pkgid > d15970ce597ed0612e4ce6355c1aa32c > files > 2

bind-9.3.1-4.3.20060mdk.x86_64.rpm

#!/bin/bash
#
# named           This shell script takes care of starting and stopping
#                 named (BIND DNS server).
#
# chkconfig: 345 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: false

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network

RETVAL=0
prog="named"

# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0

[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named

[ -f /usr/sbin/named ] || exit 0

[ -f ${ROOTDIR}/etc/named.conf ] || exit 0

start() {
        # Start daemons.
	if [ -n "`/sbin/pidof named`" ]; then
            gprintf "$prog: already running"
            return 1
        fi
        gprintf "Starting %s: " $prog
	if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
	    OPTIONS="${OPTIONS} -t ${ROOTDIR}"
	fi
        daemon named -u named ${OPTIONS}
	RETVAL=$?
 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
	echo
	return $RETVAL
}
stop() {
	# Stop daemons.
        gprintf "Stopping %s: " $prog
	    /usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf stop "$1"
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named || {
            killproc named
            RETVAL=$?
            [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named
            echo
            return $RETVAL
        }       
        success
        echo
        return $RETVAL
}
trace() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf trace "$1"
	return $?
}	
notrace() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf notrace
	return $?
}	
status() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf status
	return $?
}	
restart() {
	stop
# wait a couple of seconds for the named to finish closing down
  sleep 2
	start
}	
reload() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf reload "$1" >/dev/null 2>&1 || /usr/bin/killall -HUP named
	return $?
}
refresh() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf refresh "$1"
	return $?
}
retransfer() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf retransfer "$1"
	return $?
}
freeze() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf freeze "$1"
	return $?
}
thaw() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf thaw "$1"
	return $?
}
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
	return $?
}  
reconfig() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf reconfig
	return $?
}
stats() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf stats
	return $?
}
querylog() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf querylog
	return $?
}
dumpdb() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf dumpdb
	return $?
}
flush() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf flush "$1"
	return $?
}
flushname() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf flushname "$1"
	return $?
}
recursing() {
	/usr/sbin/rndc -c ${ROOTDIR}/etc/rndc.conf recursing
	return $?
}

# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop "$2"
		;;
	halt)
		halt "$2"
		;;
	trace)
		trace "$2"
		;;
	notrace)
		notrace
		;;
	status)
		status
		;;
	restart)
		restart
		;;
	condrestart)
		[ -f /var/lock/subsys/named ] && restart
		;;
	reload)
		reload "$2"
		;;
	refresh)
		refresh "$2"
		;;
	retransfer)
		retransfer "$2"
		;;
	freeze)
		freeze "$2"
		;;
	thaw)
		thaw "$2"
		;;
	probe)
		probe
		;;
	reconfig)
		reconfig
		;;
	stats)
		stats
		;;
	querylog)
		querylog
		;;
	dumpdb)
		dumpdb
		;;
	flush)
		flush "$2"
		;;
	flushname)
		flushname "$2"
		;;
	recursing)
		recursing
		;;
	*)
        	gprintf "Usage: %s {start|stop|halt|status|restart|condrestart|trace|notrace|reload|refresh|retransfer|freeze|thaw|probe|reconfig|stats|querylog|dumpdb|flush|flushname|recursing}\n" $0
		exit 1
esac

exit $?