bind 9.3.5-P2 init.d script

Linux Addict linuxaddict7 at gmail.com
Thu Aug 21 13:25:00 UTC 2008


ListAcc wrote:
> Linux Addict wrote:
>> ListAcc wrote:
>>> Linux Addict wrote:
>>>> ListAcc wrote:
>>>>> Adam Tkac wrote:
>>>>>  
>>>>>> On Tue, Aug 19, 2008 at 09:55:30PM -0500, ListAcc wrote:
>>>>>>   
>>>>>>> Hello,
>>>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>>   
>>>>>>> I have removed Bind 9.4.2 from CentOS with yum and compiled Bind 
>>>>>>> 9.3.5-P2.  I am having trouble using the old init script from 
>>>>>>> the rpm setup previously installed.  Bind will not start but 
>>>>>>> will stop fine.  It is chroot the same as the rpm.  I did not 
>>>>>>> create the proc directory if this helps...I can't seem to find 
>>>>>>> the culprit.
>>>>>>>
>>>>>>>           
>>>>>> Did you check system log? Why exactly named won't start?
>>>>>>
>>>>>> Adam
>>>>>>
>>>>>>       
>>>>> Adam it does not say anything in /var/log/messages  also when I 
>>>>> type service named start nothing happens but when I type service 
>>>>> named stop it shows:
>>>>> Stopping named:                                            [  OK  ]
>>>>>
>>>>> --Otis
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>   
>>>> Did you update the /etc/sysconfig/named with your chroot dir?
>>>>
>>>> Enabe the named script verbose #!/bin/bash -xv and check what 
>>>> variables are missing.
>>>>
>>>>
>>>>
>>>>
>>> Linux Addict - I have verified the chroot directory in 
>>> /etc/sysconfig/named and still nothing but service named stop works 
>>> find.  Also I even recompiled with ./configure --with-openssl && 
>>> make && make install nothing. I am completely bummed.  Again logs 
>>> say nothing.  Starting with named -g works fine. What do you think?
>>>
>>> --Otis
>>>
>>>
>> Can you please post the output of " bash -xv /etc/init.d/named start " ?
>>
> Here you go:
>
> start() {
>
>        [ -x /usr/sbin/$named ] || exit 5
>
>        if [ ! -r ${ROOTDIR}${named_conf} ] ; then
>           if [ -z "$named_c_option" ] && [ -r 
> ${ROOTDIR}/etc/named.conf ]; then
>               named_conf='/etc/etc/named.conf';
>               OPTIONS="$OPTIONS -c ${named_conf}";
>           else
>               echo Locating $ROOTDIR/${named_conf} failed:
>               failure
>               echo;
>               exit 6;
>           fi;
>        fi;
>
>        # Start daemons.
>        echo -n $"Starting $named: "
>        if [ -n "`/sbin/pidof -o %PPID $named`" ]; then
>                echo -n $"$named: already running"
>                failure
>                echo
>                return 1
>        fi
>        ckcf_options='-z'; # enable named-checkzone for each zone 
> (9.3.1+) !
>        if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
>                OPTIONS="${OPTIONS} -t ${ROOTDIR}"
>                ckcf_options="$ckcf_options -t ${ROOTDIR}";
>                if [ -s /etc/localtime ]; then
>                    cp -fp /etc/localtime ${ROOTDIR}/etc/localtime
>                fi;
>                if [ ! -d ${ROOTDIR}/proc ]; then
>                    mkdir -p ${ROOTDIR}/proc
>                fi
>                if ! egrep -q '^/proc[[:space:]]+'${ROOTDIR}'/proc' 
> /proc/mounts; then
>                    mount --bind -n /proc ${ROOTDIR}/proc >/dev/null 2>&1
>                fi
>                if [ $dbusEnabled -eq 1 ]; then
>                    if ! egrep -q 
> '^/[^[:space:]]+[[:space:]]+'${ROOTDIR}'/var/run/dbus' /proc/mounts; then
>                        mkdir -p ${ROOTDIR}/var/run/dbus
>                        if [ ! -d  /var/run/dbus ] ; then
>                            mkdir -p /var/run/dbus ;
>                        fi;
>                        mount --bind -n /var/run/dbus 
> ${ROOTDIR}/var/run/dbus > /dev/null 2>&1;
>                    fi;
>                fi;
>        fi
>        no_write_master_zones=0
>        if [ -e /etc/selinux/config ]; then
>           .  /etc/selinux/config
>           if [[ ( "$SELINUX" != 'disabled') && ("$SELINUXTYPE" != "") 
> && (-d /etc/selinux/${SELINUXTYPE}) && (-e 
> /etc/selinux/${SELINUXTYPE}/booleans || (-e 
> /etc/selinux/${SELINUXTYPE}/booleans.local)) ]]; then
>               if [ -e /etc/selinux/${SELINUXTYPE}/booleans.local ]; then
>                   . /etc/selinux/${SELINUXTYPE}/booleans.local;
>               else
>                   . /etc/selinux/${SELINUXTYPE}/booleans;
>               fi;
>               if echo "$named_write_master_zones" | /bin/egrep -q 
> '^[0-9]+$'; then
>                   if [ "$named_write_master_zones" -eq 1 ] ; then
>                       /bin/chown -f --from=root:named named:named 
> $ROOTDIR/var/named
>                   elif [ "$named_write_master_zones" -eq 0 ] ; then
>                       /bin/chown -f --from=named:named root:named 
> $ROOTDIR/var/named
>                   fi;
>               fi;
>           else
>               no_write_master_zones=1
>           fi;
>        else
>            no_write_master_zones=1
>        fi;
>        if [ "$no_write_master_zones" -eq 1 ]; then
>            if [[ "$ENABLE_ZONE_WRITE" =  [yY1]* ]]; then
>                /bin/chown -f --from=root:named named:named 
> $ROOTDIR/var/named
>            elif [[ "$ENABLE_ZONE_WRITE" =  [nN0]* ]]; then
>                /bin/chown -f --from=named:named root:named 
> $ROOTDIR/var/named
>            fi;
>        fi
>        conf_ok=0;
>        if [ -x /usr/sbin/named-checkconf ] && [ -x 
> /usr/sbin/named-checkzone ] && /usr/sbin/named-checkconf $ckcf_options 
> ${named_conf} >/dev/null 2>&1; then
>           conf_ok=1;
>        else
>           RETVAL=$?;
>        fi
>        if [ $conf_ok -eq 1 ]; then
>           daemon /usr/sbin/$named -u named ${OPTIONS};
>           RETVAL=$?;
>           if [ $RETVAL -eq 0 ]; then
>               rm -f /var/run/named.pid
>               rm -f /var/run/named_sdb.pid 2>/dev/null
>               ln -s $ROOTDIR/var/run/named/named.pid /var/run/named.pid;
>               if [ "$named" = "named_sdb" ]; then
>                   ln -s $ROOTDIR/var/run/named/named.pid 
> /var/run/named_sdb.pid;
>               fi;
>           fi;
>           if [ -n "`/sbin/pidof -o %PPID $named`" ]; then
>               # Verify that named actually started (JM 2006-10-04)
>               if [ ! -e $ROOTDIR/var/run/named/named.pid ]; then
>                  # If there is not a file containing the PID of the 
> now running named daemon then create it (JM 2006-10-04)
>                  echo `/sbin/pidof -o %PPID $named` > 
> $ROOTDIR/var/run/named/named.pid;
>                  if [ "$named" = "named_sdb" ]; then
>                     echo `/sbin/pidof -o %PPID $named` > 
> $ROOTDIR/var/run/named/named_sdb.pid;
>                  fi;
>               fi;
>           fi;
>        else
>           named_err="`/usr/sbin/named-checkconf $ckcf_options 
> $named_conf 2>&1`";
>           echo
>           echo $"Error in named configuration"':';
>           echo "$named_err";
>           failure
>           echo
>           if [ -x /usr/bin/logger ]; then
>               echo "$named_err" | /usr/bin/logger -pdaemon.error -tnamed
>           fi;
>           return 7;
>        fi;
>        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
>        echo
>        return $RETVAL
> }
> stop() {
>        # Stop daemons.
>        echo -n $"Stopping $named: "
>        /usr/sbin/rndc stop >/dev/null 2>&1
>        RETVAL=$?
>        [ "$RETVAL" -eq 0 ] || killproc "$named" -TERM >/dev/null 2>&1
>
>        timeout=0
>        RETVAL=0
>        while /sbin/pidof -o %PPID "$named" >/dev/null; do
>                if [ $timeout -ge $NAMED_SHUTDOWN_TIMEOUT ]; then
>                        RETVAL=1
>                        break
>                else
>                        sleep 2 && echo -n "."
>                        timeout=$((timeout+2))
>                fi;
>        done
>        if [ $RETVAL -eq 0 ]; then
>            rm -f /var/lock/subsys/named
>            rm -f /var/run/named.pid
>            rm -f /var/run/named_sdb.pid 2>/dev/null
>        fi;
>        if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
>            if egrep -q '^/proc[[:space:]]+'${ROOTDIR}'/proc' 
> /proc/mounts; then
>               umount ${ROOTDIR}/proc >/dev/null 2>&1
>            fi
>            if [ $dbusEnabled -eq 1 ]; then
>               if egrep -q 
> '^/[^[:space:]]+[[:space:]]+'${ROOTDIR}'/var/run/dbus' /proc/mounts; then
>                  umount ${ROOTDIR}/var/run/dbus > /dev/null 2>&1
>               fi;
>            fi;
>        fi;
>        if [ $RETVAL -eq 0 ]; then
>            success
>        else
>            failure
>        fi;
>        echo
>        return $RETVAL
> }
> rhstatus() {
>        /usr/sbin/rndc status
>        status /usr/sbin/$named
>        return $?
> }
> restart() {
>        stop
> # wait a couple of seconds for the named to finish closing down
>        sleep 2
>        start
> }
> reload() {
>        echo -n $"Reloading $named: "
>        p=`/sbin/pidof -o %PPID $named`
>        RETVAL=$?
>        if [ "$RETVAL" -eq 0 ]; then
>            /usr/sbin/rndc reload >/dev/null 2>&1 || /bin/kill -HUP $p;
>            RETVAL=$?
>        fi
>        [ "$RETVAL" -eq 0 ] && success $"$named reload" || failure 
> $"$named reload"
>        echo
>        return $?
> }
> probe() {
>        # named knows how to reload intelligently; we don't want linuxconf
>        # to offer to restart every time
>        /usr/sbin/rndc reload >/dev/null 2>&1 || echo start
>        return $?
> }
> checkconfig() {
>        ckcf_options='-z'; # enable named-checkzone for each zone 
> (9.3.1+) !
>        if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
>                OPTIONS="${OPTIONS} -t ${ROOTDIR}"
>                ckcf_options="$ckcf_options -t ${ROOTDIR}";
>        fi;
>        if [ -x /usr/sbin/named-checkconf ] && [ -x 
> /usr/sbin/named-checkzone ] && /usr/sbin/named-checkconf $ckcf_options 
> ${named_conf} | cat ; then
>            return 0;
>        else
>            return 1;
>        fi
> }
>
> # See how we were called.
> case "$1" in
>        start)
>                start
>                ;;
>        stop)
>                stop
>                ;;
>        status)
>                rhstatus
>                ;;
>        restart)
>                restart
>                ;;
>        condrestart)
>                [ -e /var/lock/subsys/named ] && restart;
>                ;;
>        reload)
>                reload
>                ;;
>        probe)
>                probe
>                ;;
>        checkconfig|configtest|check|test) ROOTDIR/${named_conf} failed:
>                checkconfig
>                ;;
>        *)
>                echo $"Usage: $0 
> {start|stop|status|restart|condrestart|reload|configtest|probe}"
>                exit 2
> esac
> + case "$1" in
> + start
> + '[' -x /usr/sbin/named ']'
> + exit 5
>
>
> --Otis
>
>

This is what your problem is:

ROOTDIR/${named_conf} failed:

If you are running on chroot environment, make sure named.conf placed 
correctly. So it will be "ROOTDIR Value in etc sysconfig named" /named.conf

~LA




More information about the bind-users mailing list