#!/bin/sh # # named This shell script takes care of starting and stopping # named (BIND DNS server). # # chkconfig: 345 20 55 # description: \ # named (BIND) is a Domain Name Server (DNS) that is used to \ # resolve host names to IP addresses. # processname: named WITHOUT_RC_COMPAT=1 # Source function library. . /etc/init.d/functions # Source networking configuration. SourceIfNotEmpty /etc/sysconfig/network LOCKFILE=/var/lock/subsys/bind RETVAL=0 rndc_keygen() { local rndc="@ROOT@/etc/rndc.key" if [ -w "$rndc" ] && grep -Eqs '^[[:space:]]*secret[[:space:]]+"@RNDC_KEY@";$' "$rndc"; then echo -n 'Generating RNDC key: ' local key if key=`rndc-confgen -A -r /dev/urandom` && [ -n "$key" ] && subst "s,^\([[:space:]]*secret[[:space:]]\+\)\"@RNDC_KEY@\";,\1\"$key\";," "$rndc"; then success 'RNDC key generation' RETVAL=0 else failure 'RNDC key generation' RETVAL=1 fi echo return $RETVAL fi } start() { is_yes "$NETWORKING" || return 0 rndc_keygen || return 1 start_daemon --lockfile "$LOCKFILE" --expect-user named -- named RETVAL=$? return $RETVAL } stop() { stop_daemon --lockfile "$LOCKFILE" --expect-user named -- named RETVAL=$? return $RETVAL } restart() { stop start } reload() { msg_reloading named stop_daemon --expect-user named -HUP -- named RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status --lockfile "$LOCKFILE" --expect-user named named RETVAL=$? ;; reload) reload ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; *) msg_usage "${0##*/} {start|stop|restart|reload|status|condstop|condrestart}" RETVAL=1 esac exit $RETVAL