X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=named.init;h=d94131ebd679b2bd6517f1d01b65f673de555b45;hb=7f3952fced34d51f7cfd7ce2c225464c522ed58f;hp=89139d97f3d0a2b8f47953f67b3e66ce2444d5e9;hpb=da1295cda91810b212c1c23262289fda0f88f23b;p=packages%2Fbind.git diff --git a/named.init b/named.init index 89139d9..d94131e 100644 --- a/named.init +++ b/named.init @@ -3,53 +3,108 @@ # named This shell script takes care of starting and stopping # named (BIND DNS server). # -# chkconfig: 345 55 45 +# chkconfig: 345 11 89 +# # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. -# Source function library. +CHROOT_TO_DIR="/var/lib/named" + +# Source function library . /etc/rc.d/init.d/functions -# Source networking configuration. +# Source networking configuration . /etc/sysconfig/network +NAMED_OPT="" + # Try get config.. -if [ -f /etc/sysconfig/named ]; then - . /etc/sysconfig/named -fi - +[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named + # Check that networking is up. -if [ "${NETWORKING}" = "no" ]; then - echo "WARNING: Networking is down. Named service can't be runed." - 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 -[ -f /etc/named.conf ] || exit 0 +[ -e /etc/named.conf ] || exit 0 + +[ -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 + [ -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) - show Starting named - daemon named - touch /var/lock/subsys/named - ;; + start + ;; stop) - show Stopping named - killproc named - rm -f /var/lock/subsys/named - ;; + stop + ;; status) status named + RETVAL=$? + if [ -f /etc/rndc.conf ]; then + /usr/sbin/rndc status + RET=$? + if [ $RET -ne 0 ]; then + RETVAL=$RET + fi + 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=$? + fi + else + msg_not_running "Named" + exit 7 + fi + ;; restart) - $0 stop - $0 start + stop + start ;; *) - echo "Usage: $0 {start|stop|status|restart}" - exit 1 + msg_usage "$0 {start|stop|restart|reload|force-reload|status}" + exit 3 esac -exit 0 +exit $RETVAL