X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=named.init;h=541b28680ef4e932e4416108ff2c3c807e3a3f10;hb=3b140999a99115ae57b384f82a59f31a62bc4751;hp=47c456b2a6d03c2678ad954abc624ad7c981da92;hpb=a0952b2b89eef9996d88c8c47aa6c100b25f58cb;p=packages%2Fbind.git diff --git a/named.init b/named.init index 47c456b..541b286 100644 --- a/named.init +++ b/named.init @@ -3,7 +3,7 @@ # named This shell script takes care of starting and stopping # named (BIND DNS server). # -# chkconfig: 345 14 89 +# chkconfig: 345 11 89 # # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. @@ -16,9 +16,11 @@ CHROOT_TO_DIR="/var/lib/named" # Source networking configuration . /etc/sysconfig/network +NAMED_OPT="" + # Try get config.. [ -f /etc/sysconfig/named ] && . /etc/sysconfig/named - + # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then @@ -28,67 +30,100 @@ if is_yes "${NETWORKING}"; then else exit 0 fi - + # Sanity check [ -e /etc/named.conf ] || exit 0 -RETVAL=0 -# See how we were called. -case "$1" in - start) +[ -n "$NUM_CPUS" ] && NAMED_OPT="$NAMED_OPT -n $NUM_CPUS" + +start() { # Check if the service is already running? - if [ ! -f /var/lock/subsys/named ]; then - msg_starting "Named" - modprobe -s capability > /dev/null 2>&1 - touch /var/lib/named/named.log && \ - chown named.named /var/lib/named/named.log - daemon named -u named -t /var/lib/named \ - -c /etc/named.conf -n ${NUM_CPUS:-1} /dev/null 2>&1 + + msg_starting "Named" + modprobe -s capability > /dev/null 2>&1 + [ -f /etc/localtime ] && cp -puL /etc/localtime $CHROOT_TO_DIR/etc/localtime + touch $CHROOT_TO_DIR/named.log && \ + chown named:named $CHROOT_TO_DIR/named.log + daemon --pidfile $CHROOT_TO_DIR/named.pid /usr/sbin/named -u named \ + -t $CHROOT_TO_DIR -c /etc/named.conf $NAMED_OPT /dev/null 2>&1 +} + +reload() { + if [ ! -f /var/lock/subsys/named ]; then + msg_not_running "Named" + RETVAL=7 + return + fi + + if [ -f /etc/rndc.conf ]; then + run_cmd "$(nls 'Reloading %s service' 'Named')" /usr/sbin/rndc reload else + msg_reloading "Named" + killproc named -HUP + RETVAL=$? + fi +} + +condrestart() { + if [ ! -f /var/lock/subsys/named ]; then msg_not_running "Named" + RETVAL=$1 + return fi + + stop + start +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + reload|force-reload) + reload ;; status) status named RETVAL=$? if [ -f /etc/rndc.conf ]; then /usr/sbin/rndc status -# RETVAL=$? - fi - ;; - reload|force-reload) - if [ -f /var/lock/subsys/named ]; then - if [ -f /etc/rndc.conf ]; then - run_cmd "$(nls 'Reloading %s service' 'Named')" /usr/sbin/rndc reload - else - msg_reloading "Named" - killproc named -HUP - RETVAL=$? + RET=$? + if [ $RET -ne 0 ]; then + RETVAL=$RET fi - else - msg_not_running "Named" >&2 - exit 7 fi - - ;; - restart) - $0 stop - $0 start - exit $? ;; *) - msg_usage "$0 {start|stop|restart|reload|force-reload|status}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" exit 3 esac