summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2015-02-04 21:47:26 -0800
committerIvan Kohler <ivan@freeside.biz>2015-02-04 21:47:26 -0800
commit4792471dbc3eb9e05f03bbff17b100ea89486d07 (patch)
tree8898be4d5c5a55f3658021c3584e1cc04210b06e
parent60f71e8b94fcd4403ad59c0508de59f90eb6edc5 (diff)
reliabily kill off old freeside-selfservice-server processes, RT#33174
-rw-r--r--init.d/freeside-init16
1 files changed, 14 insertions, 2 deletions
diff --git a/init.d/freeside-init b/init.d/freeside-init
index 92e3fdfe0..705afc184 100644
--- a/init.d/freeside-init
+++ b/init.d/freeside-init
@@ -160,6 +160,7 @@ case "$1" in
then
echo -n "Stopping (old) freeside-selfservice-server: "
kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid`
+ sleep
rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid
echo "done."
fi
@@ -168,9 +169,20 @@ case "$1" in
for MACHINE in $SELFSERVICE_MACHINES; do
if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid ]
then
- echo -n "Stopping freeside-selfservice-server to $MACHINE: "
- kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
+ echo -n "Stopping freeside-selfservice-server to $MACHINE"
+ howlong=10
+ while [ $howlong -gt 0 ] && kill -0 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid` 2>/dev/null; do
+ echo -n '.'
+ kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
+ sleep 1
+ howlong=$(( $howlong - 1 ))
+ if [ $howlong -eq 0 ]; then
+ echo -n 'forcefully.'
+ kill -9 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
+ fi
+ done
echo "done."
+ rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid
fi
done