X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=named.init;h=d94131ebd679b2bd6517f1d01b65f673de555b45;hb=896bf68a3302854c7644db8fe3c309facac5240e;hp=f732af30217a7b74a4fd1787019c7409675105ae;hpb=506ed35afb205c02c936aaa7d7e51559076d3d2c;p=packages%2Fbind.git diff --git a/named.init b/named.init index f732af3..d94131e 100644 --- a/named.init +++ b/named.init @@ -3,79 +3,108 @@ # 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. +CHROOT_TO_DIR="/var/lib/named" + # Source function library . /etc/rc.d/init.d/functions # 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_no "${NETWORKING}"; then - msg_network_down "Named" - exit 1 +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "Named" + exit 1 + fi +else + exit 0 fi - + # Sanity check [ -e /etc/named.conf ] || exit 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" - 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 + [ -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 + else + msg_not_running "Named" + fi +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; stop) - if [ -f /var/lock/subsys/named ]; then - msg_stopping "Named" - killproc named - rm -f /var/lock/subsys/named >/dev/null 2>&1 - else - msg_not_running "Named" - exit 1 - fi + stop ;; status) -# "status" Not implemented yet -# /usr/sbin/rndc status -# exit $? status named + RETVAL=$? + if [ -f /etc/rndc.conf ]; then + /usr/sbin/rndc status + RET=$? + if [ $RET -ne 0 ]; then + RETVAL=$RET + fi + fi ;; - reload) - if [ -f /var/lock/subsys/named ]; then - msg_reloading "Named" - killproc named -HUP + 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=$? + fi else - msg_not_running "Named" - exit 1 + msg_not_running "Named" + exit 7 fi - + ;; restart) - $0 stop - $0 start + stop + start ;; *) - msg_usage "$0 {start|stop|status|reload|restart}" - exit 1 + msg_usage "$0 {start|stop|restart|reload|force-reload|status}" + exit 3 esac exit $RETVAL