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
commit184e136c42f204d78975ab94af27f65626e481d4 (patch)
tree554b453604bed6bdd676546533f05962a2c44274 /named.init
parentf0295fac62ba6d346cb49a3f4758e0fd857a9448 (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