From 508a9811339b2d3bf37d323b65a80f9c5aa9e7b4 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Fri, 21 Mar 2014 19:38:17 -0500 Subject: [PATCH] Adding idempiere_Suse.sh - minor fix to debian and redhat --- .../utils.unix/unix/idempiere_Debian.sh | 7 +- .../utils.unix/unix/idempiere_RedHat.sh | 7 +- .../utils.unix/unix/idempiere_Suse.sh | 196 ++++++++++++++++++ 3 files changed, 200 insertions(+), 10 deletions(-) create mode 100644 org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh 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 e1aab7a358..a01fa9c198 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh @@ -18,7 +18,7 @@ # initialization # adjust these variables to your environment -IDEMPIERE_HOME=/home/idempiere/idempiere-server +IDEMPIERE_HOME=/opt/idempiere-server IDEMPIEREUSER=idempiere # Instead of using ENVFILE you can set JAVA_HOME, IDEMPIERE_HOME and add JAVA_HOME/bin to PATH # in this case you can comment the source lines for ENVFILE below @@ -141,9 +141,6 @@ case "$1" in stop) stop ;; - reload) - restart - ;; restart) restart ;; @@ -154,7 +151,7 @@ case "$1" in status ;; *) - echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" + echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac 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 86c6b5b0b3..3b41434e78 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh @@ -17,7 +17,7 @@ # initialization # adjust these variables to your environment -IDEMPIERE_HOME=/home/idempiere/idempiere-server +IDEMPIERE_HOME=/opt/idempiere-server ENVFILE=$IDEMPIERE_HOME/utils/myEnvironment.sh IDEMPIEREUSER=idempiere @@ -136,9 +136,6 @@ case "$1" in stop) stop ;; - reload) - restart - ;; restart) restart ;; @@ -149,7 +146,7 @@ case "$1" in status ;; *) - echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" + echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh new file mode 100644 index 0000000000..2a9c7874e9 --- /dev/null +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh @@ -0,0 +1,196 @@ +#!/bin/sh +# Copyright (c) 2014 Carlos Ruiz - GlobalQSS +# All rights reserved. +# +# System startup script for iDempiere +# +# LSB compatible service control script; see http://www.linuxbase.org/spec/ +# +### BEGIN INIT INFO +# Provides: idempiere +# Required-Start: +# Required-Stop: +# Default-Start: 3 5 +# Default-Stop: +# Description: Start the iDempiere server +### END INIT INFO + +# initialization +# adjust these variables to your environment +IDEMPIERE_HOME=/opt/idempiere-server +IDEMPIEREUSER=idempiere +# Instead of using ENVFILE you can set JAVA_HOME, IDEMPIERE_HOME and add JAVA_HOME/bin to PATH +# in this case you can comment the source lines for ENVFILE below +# detected some problems with Hardy Heron ubuntu using the bash source command +ENVFILE=$IDEMPIERE_HOME/utils/myEnvironment.sh + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_failed set local and overall rc status to failed +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status +. /etc/rc.status + +# The echo return value for success (defined in /etc/rc.config). +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - insufficient privilege +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signalling is not supported) are +# considered a success. + +# +IDEMPIERESTATUS= +MAXITERATIONS=60 + +getidempierestatus() { + IDEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $IDEMPIERE_HOME) + echo $IDEMPIERESTATUSSTRING | grep -q $IDEMPIERE_HOME + IDEMPIERESTATUS=$? +} + +start () { + getidempierestatus + if [ $IDEMPIERESTATUS -eq 0 ] ; then + echo "iDempiere is already running" + rc_failed 0 + return + fi + echo -n "Starting iDempiere ERP: " + cd $IDEMPIERE_HOME/utils + . $ENVFILE + export LOGFILE=$IDEMPIERE_HOME/log/idempiere_`date +%Y%m%d%H%M%S`.log + su $IDEMPIEREUSER -c "mkdir -p IDEMPIERE_HOME/log" + su $IDEMPIEREUSER -c "cd $IDEMPIERE_HOME;$IDEMPIERE_HOME/idempiere-server.sh &> $LOGFILE &" + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + # wait for server to be confirmed as started in logfile + STATUSTEST=0 + ITERATIONS=0 + while [ $STATUSTEST -eq 0 ] ; do + sleep 2 + tail -n 9 $LOGFILE | grep -q '.*WebUIServlet.*started successfully.*' && STATUSTEST=1 + echo -n "." + ITERATIONS=`expr $ITERATIONS + 1` + if [ $ITERATIONS -gt $MAXITERATIONS ] + then + break + fi + done + if [ $STATUSTEST -eq 0 ] + then + echo "Service hasn't started within the timeout allowed, please review file $LOGFILE to see the status of the service" + rc_failed 1 + else + echo "Service started" + fi + echo + else + echo "Service not started" + rc_failed 1 + fi + rc_status -v +} + +stop () { + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo "iDempiere is already stopped" + rc_failed 0 + return + 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 + 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 + rc_status -v +} + +restart () { + stop + sleep 1 + start + rc_status +} + +condrestart () { + getidempierestatus + if [ $IDEMPIERESTATUS -eq 0 ] ; then + restart + else + rc_reset # Not running is not a failure. + fi + rc_status +} + +status () { + getidempierestatus + if [ $IDEMPIERESTATUS -eq 0 ] ; then + echo + echo "iDempiere is running:" + ps ax | grep -v grep | grep $IDEMPIERE_HOME | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/' + echo + else + echo "iDempiere is stopped" + rc_failed 3 + fi + rc_status -v +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + reload) + restart + ;; + restart) + restart + ;; + condrestart) + condrestart + ;; + status) + status + ;; + *) + echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" + exit 1 +esac + +# Inform the caller not only verbosely and set an exit status. +rc_exit