summaryrefslogtreecommitdiffstats
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
commit2e702b326bed1be8283ea9f5581a7ef7ef33a1c2 (patch)
treef69ec0166e32cb8100ee660ee45e86d2c0d64eb9
parent66f11969cffe3ff605a7f4e887f7e654c52b7499 (diff)
downloadbind-2e702b326bed1be8283ea9f5581a7ef7ef33a1c2.tar.gz
bind-2e702b326bed1be8283ea9f5581a7ef7ef33a1c2.tar.xz
bind-2e702b326bed1be8283ea9f5581a7ef7ef33a1c2.zip
added timeout to init scriptbind-9_3_3-3_fc6
-rw-r--r--bind.spec3
-rwxr-xr-xnamed.init30
2 files changed, 24 insertions, 9 deletions
diff --git a/bind.spec b/bind.spec
index d14ff34..9939cc5 100644
--- a/bind.spec
+++ b/bind.spec
@@ -785,6 +785,9 @@ rm -rf ${RPM_BUILD_ROOT}
* Thu Oct 5 2006 Martin Stransky <stransky@redhat.com> - 30:9.3.3-3
- added fix from #209400 - Bind Init Script does not create
the PID file always, created by Jeff Means
+- added timeout to stop section of init script.
+ The default is 100 sec. and can be adjusted by NAMED_SHUTDOWN_TIMEOUT
+ shell variable.
* Mon Oct 2 2006 Martin Stransky <stransky@redhat.com> - 30:9.3.3-2
- removed chcon from post script, replaced by restorecon
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