From d5e390c829867c855871036392954264602521aa Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 30 May 2016 23:24:51 -0500 Subject: [PATCH] IDEMPIERE-3023 Update Dead Sessions when Server Shutdown --- .../unix/DebianInstaller/etc/init.d/idempiere | 35 ++++++++++------- .../utils.unix/unix/idempiere_Debian.sh | 37 +++++++++++------- .../utils.unix/unix/idempiere_RedHat.sh | 37 +++++++++++------- .../utils.unix/unix/idempiere_Suse.sh | 39 +++++++++++-------- 4 files changed, 88 insertions(+), 60 deletions(-) diff --git a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere index 0f1188ef3d..eeb90d5fa6 100755 --- a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere +++ b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere @@ -618,23 +618,30 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - log_warning_msg "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -15" + log_success_msg "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -9" - else - log_warning_msg "Service hasn't stopped" - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -9" + else + log_warning_msg "Service hasn't stopped" + fi + fi fi return $RETVAL } diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh index 431a703d7b..fe77f58b75 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh @@ -87,24 +87,31 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - . $ENVFILE - log_warning_msg "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + . $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -15" + log_success_msg "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -9" - else - log_warning_msg "Service hasn't stopped" - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -9" + else + log_warning_msg "Service hasn't stopped" + fi + fi fi return $RETVAL } diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh index 7d193968ae..1cc8d34e76 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh @@ -83,24 +83,31 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - source $ENVFILE - echo "Trying direct kill with signal -15" - # iDempiere didn't finish - try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + source $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo_success + echo_success else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo_success - else - echo_warning - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo_success + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo_success + else + echo_warning + fi + fi fi RETVAL=$? return $RETVAL diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh index 14b63b532f..ed5ca0a404 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh @@ -114,25 +114,32 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - . $ENVFILE - echo "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + . $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo "Service stopped with kill -15" + echo "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo "Service stopped with kill -9" - else - echo "Service hasn't stopped" - rc_failed 1 - fi + echo "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo "Service stopped with kill -9" + else + echo "Service hasn't stopped" + rc_failed 1 + fi + fi fi rc_status -v }