bind 9.3.5-P2 init.d script

ListAcc listacc at ocosa.com
Wed Aug 20 22:22:35 UTC 2008


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)
                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



More information about the bind-users mailing list