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