diff --git a/utils/unix/adempiere_Debian.sh b/utils/unix/adempiere_Debian.sh index b40b17ca8a..a92635a554 100644 --- a/utils/unix/adempiere_Debian.sh +++ b/utils/unix/adempiere_Debian.sh @@ -1,22 +1,24 @@ -#!/bin/bash -# -# FileName: adempiere.init -# Description: adempiere erp software startup and shutdown -# Vendor: K.K. Alice -# Created: 05. April 2004 -# Author: S. Christians -# Updated: Carlos Ruiz - globalqss - version for Debian tested in Knoppix +#!/bin/bash -e # + +### BEGIN INIT INFO +# Provides: adempiere adempiere-3.5 +# Required-Start: postgresql +# Required-Stop: postgresql +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: ADempiere 3.5 server +# Description: Provides ADempiere ERP-CRM Server startup and shutdown script. Requires PostgreSQL server. # FileTarget: /etc/init.d/adempiere # FileOwner: root.root # FilePerms: 0755 # # chkconfig: 2345 97 06 -# $Id: adempiere,v 1.1 2006/03/16 05:00:28 cruiz Exp $ +### END INIT INFO # initialization # adjust these variables to your environment -EXECDIR=/home/adempiere/Adempiere +EXECDIR=/opt/adempiere/Adempiere ADEMPIEREUSER=adempiere # Instead of using ENVFILE you can set JAVA_HOME, ADEMPIERE_HOME and add JAVA_HOME/bin to PATH # in this case you can comment the source lines for ENVFILE below @@ -32,56 +34,56 @@ ADEMPIERESTATUS= MAXITERATIONS=60 # 2 seconds every iteration, max wait 2 minutes) getadempierestatus() { - ADEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $EXECDIR) - echo $ADEMPIERESTATUSSTRING | grep -q $EXECDIR - ADEMPIERESTATUS=$? + ADEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $EXECDIR) + echo $ADEMPIERESTATUSSTRING | grep -q $EXECDIR + ADEMPIERESTATUS=$? } start () { - getadempierestatus - if [ $ADEMPIERESTATUS -eq 0 ] ; then - echo "adempiere is already running" - return 1 - fi - echo -n "Starting ADempiere ERP: " - . $ENVFILE - export LOGFILE=$ADEMPIERE_HOME/jboss/server/adempiere/log/adempiere_`date +%Y%m%d%H%M%S`.log - su $ADEMPIEREUSER -c "mkdir -p $ADEMPIERE_HOME/jboss/server/adempiere/log" - su $ADEMPIEREUSER -c "cd $EXECDIR/utils;$EXECDIR/utils/RUN_Server2.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 5 $LOGFILE | grep -q 'INFO.*\[Server\].*Started in' && STATUSTEST=1 - echo -n "." - ITERATIONS=`expr $ITERATIONS + 1` - if [ $ITERATIONS -gt $MAXITERATIONS ] - then - break - fi - done - if [ $STATUSTEST -eq 0 ] - then - log_warning_msg "Service hasn't started within the timeout allowed, please review file $LOGFILE to see the status of the service" - else - log_success_msg "Service started" - fi - echo + getadempierestatus + if [ $ADEMPIERESTATUS -eq 0 ] ; then + echo "ADempiere is already running" + return 1 + fi + echo -n "Starting ADempiere ERP: " + . $ENVFILE + export LOGFILE=$ADEMPIERE_HOME/jboss/server/adempiere/log/adempiere_`date +%Y%m%d%H%M%S`.log + su $ADEMPIEREUSER -c "mkdir -p $ADEMPIERE_HOME/jboss/server/adempiere/log" + su $ADEMPIEREUSER -c "cd $EXECDIR/utils;$EXECDIR/utils/RUN_Server2.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 5 $LOGFILE | grep -q 'INFO.*\[Server\].*Started in' && STATUSTEST=1 + echo -n "." + ITERATIONS=`expr $ITERATIONS + 1` + if [ $ITERATIONS -gt $MAXITERATIONS ] + then + break + fi + done + if [ $STATUSTEST -eq 0 ] + then + log_warning_msg "Service hasn't started within the timeout allowed, please review file $LOGFILE to see the status of the service" else - log_failure_msg "Service not started" - echo + log_success_msg "Service started" fi - return $RETVAL + echo + else + log_failure_msg "Service not started" + echo + fi + return $RETVAL } stop () { getadempierestatus if [ $ADEMPIERESTATUS -ne 0 ] ; then - echo "adempiere is already stopped" - return 1 + echo "ADempiere is already stopped" + return 1 fi echo -n "Stopping ADempiere ERP: " . $ENVFILE @@ -89,80 +91,86 @@ stop () { su $ADEMPIEREUSER -c "cd $EXECDIR/utils;$EXECDIR/utils/RUN_Server2Stop.sh &> /dev/null &" RETVAL=$? if [ $RETVAL -eq 0 ] ; then - # wait for server to be confirmed as halted in logfile - STATUSTEST=0 - ITERATIONS=0 - while [ $STATUSTEST -eq 0 ] ; do + # wait for server to be confirmed as halted in logfile + STATUSTEST=0 + ITERATIONS=0 + while [ $STATUSTEST -eq 0 ] ; do sleep 2 tail -n 9 $LASTLOG | grep -q "$STOPMESSAGE" && STATUSTEST=1 echo -n "." ITERATIONS=`expr $ITERATIONS + 1` if [ $ITERATIONS -gt $MAXITERATIONS ] then - break + break fi - done - if [ $STATUSTEST -eq 0 ] - then + done + if [ $STATUSTEST -eq 0 ] + then log_warning_msg "Service hasn't stopped within the timeout allowed, please review file $LASTLOG to see the status of the service" - else + else log_success_msg "Service stopped" - fi - echo + fi + echo else - log_failure_msg "Service not stopped" - echo + log_failure_msg "Service not stopped" + echo fi return $RETVAL } restart () { - stop - sleep 1 - start + stop + sleep 1 + start } condrestart () { getadempierestatus if [ $ADEMPIERESTATUS -eq 0 ] ; then - restart + restart fi } rhstatus () { getadempierestatus if [ $ADEMPIERESTATUS -eq 0 ] ; then - echo - echo "adempiere is running:" - ps ax | grep -v grep | grep $EXECDIR | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/' - echo + echo + echo "ADempiere is running:" + ps ax | grep -v grep | grep $EXECDIR | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/' + echo else - echo "adempiere is stopped" + echo "ADempiere is stopped" fi } case "$1" in - start) - start - ;; - stop) - stop - ;; - reload) - restart - ;; - restart) - restart - ;; - condrestart) - condrestart - ;; - status) - rhstatus - ;; - *) - echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" - exit 1 + start) + start + ;; + + stop) + stop + ;; + + reload) + restart + ;; + + restart) + restart + ;; + + condrestart) + condrestart + ;; + + status) + rhstatus + ;; + + *) + echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" + exit 1 esac exit 0