diff --git a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in index d61cb7b8088..562b561ab9c 100755 --- a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -34,7 +34,29 @@ case "$1" in status ${NAME} RETVAL=$? ;; - *) + stop) + SHUTDOWN_WAIT="30" + count="0" + if [ -f /var/run/cloud-management.pid ]; then + pid=`cat /var/run/cloud-management.pid` + kill $pid &>/dev/null + until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \ + [ "$count" -gt "$SHUTDOWN_WAIT" ] + do + sleep 1 + let count="${count}+1" + done + if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then + log_success_msg "Stopping Cloud-management" + else + log_failure_msg "Stopping Cloud-management" + fi + else + echo "Cannot find PID file of Cloud-management" + log_failure_msg "Stopping Cloud-management" + fi + ;; + *) . /etc/rc.d/init.d/tomcat6 esac diff --git a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in index d61cb7b8088..562b561ab9c 100755 --- a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -34,7 +34,29 @@ case "$1" in status ${NAME} RETVAL=$? ;; - *) + stop) + SHUTDOWN_WAIT="30" + count="0" + if [ -f /var/run/cloud-management.pid ]; then + pid=`cat /var/run/cloud-management.pid` + kill $pid &>/dev/null + until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \ + [ "$count" -gt "$SHUTDOWN_WAIT" ] + do + sleep 1 + let count="${count}+1" + done + if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then + log_success_msg "Stopping Cloud-management" + else + log_failure_msg "Stopping Cloud-management" + fi + else + echo "Cannot find PID file of Cloud-management" + log_failure_msg "Stopping Cloud-management" + fi + ;; + *) . /etc/rc.d/init.d/tomcat6 esac diff --git a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in index d61cb7b8088..562b561ab9c 100644 --- a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -34,7 +34,29 @@ case "$1" in status ${NAME} RETVAL=$? ;; - *) + stop) + SHUTDOWN_WAIT="30" + count="0" + if [ -f /var/run/cloud-management.pid ]; then + pid=`cat /var/run/cloud-management.pid` + kill $pid &>/dev/null + until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \ + [ "$count" -gt "$SHUTDOWN_WAIT" ] + do + sleep 1 + let count="${count}+1" + done + if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then + log_success_msg "Stopping Cloud-management" + else + log_failure_msg "Stopping Cloud-management" + fi + else + echo "Cannot find PID file of Cloud-management" + log_failure_msg "Stopping Cloud-management" + fi + ;; + *) . /etc/rc.d/init.d/tomcat6 esac