summaryrefslogtreecommitdiffstats
path: root/named.init
diff options
context:
space:
mode:
authorMartin Stransky <stransky@fedoraproject.org>2006-10-05 13:06:25 +0000
committerMartin Stransky <stransky@fedoraproject.org>2006-10-05 13:06:25 +0000
commit12f7712e236bd7a377652d3271863bb4282255d9 (patch)
treeb437bd974f26ca9a718c4e04aa2ba1a1f9fb8ce9 /named.init
parent2db6aa0b59a093504539e4ae63c29c8e3d4a50fa (diff)
added timeout to init script
Diffstat (limited to 'named.init')
-rwxr-xr-xnamed.init30
1 files changed, 21 insertions, 9 deletions
diff --git a/named.init b/named.init
index d5aa418..0088c72 100755
--- a/named.init
+++ b/named.init
@@ -19,6 +19,9 @@
[ -r /etc/sysconfig/named ] && . /etc/sysconfig/named
+# Don't kill named dunring clean-up
+NAMED_SHUTDOWN_TIMEOUT=${NAMED_SHUTDOWN_TIMEOUT:-100}
+
if [ -n "$ROOTDIR" ]; then
ROOTDIR=`echo $ROOTDIR | sed 's#//*#/#g;s#/$##'`;
rdl=`/usr/bin/readlink $ROOTDIR`;
@@ -194,17 +197,26 @@ stop() {
/usr/sbin/rndc stop >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
+ timeout=0
+ while : ; do
+ if /sbin/pidof -o %PPID $named >/dev/null; then
+ if [ $timeout -ge $NAMED_SHUTDOWN_TIMEOUT ]; then
+ killproc $named -TERM >/dev/null 2>&1
+ RETVAL=$?
+ break
+ else
+ sleep 2 && echo -n "."
+ timeout=$((timeout+2))
+ fi;
+ else
+ break
+ fi;
+ done
+ fi;
+ if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/named
- rm -f /var/run/named.pid
+ rm -f /var/run/named.pid
rm -f /var/run/named_sdb.pid 2>/dev/null
- elif /sbin/pidof -o %PPID $named >/dev/null; then
- killproc $named -TERM >/dev/null 2>&1
- RETVAL=$?
- 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;
fi;
if [ $RETVAL -eq 0 ]; then
success