Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Solaris shell function ofbizprocs() does not work with bash. Instead simply executing the external program pgrep does the job here. You need to install the Debian or Ubuntu package procps in order to use pgrep.

Code Block
#!/bin/bash -e

### BEGIN INIT INFO
# Provides:          ofbiz
# Required-Start:    $syslog $time $remote_fs
# Required-Stop:     $syslog $time $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start Apache Ofbiz
# Description:       Debian init script for the Apache Ofbiz,
#                    the open source enterprise automation software 
### END INIT INFO
set -e
######################################################################
export JAVA_HOME=/usr/local/src/jdk1.6.0_18
export CLASSPATH=/usr/local/src/jdk1.6.0_18
export PATH=.:/usr/local/src/jdk1.6.0_18/bin:/bin:/usr/bin:/sbin:/usr/sbin
cd /var/www/Ofbiz/
######################################################################
export JAVA_BINARY=/usr/local/src/jdk1.6.0_18/bin/java
export JAVA=$JAVA_BINARY
OFBIZ_HOME=/var/www/Ofbiz/
OFBIZ_LOG=$OFBIZ_HOME/runtime/logs/console.log
OFBIZ_OUT=/tmp/OfbizOut
# JAVA_VMOPTIONS="-Duser.language=de"
# JAVA_VMOPTIONS="-Xms768M -Xmx1024M -Duser.language=en"
JAVA_ARGS="-jar ${OFBIZ_HOME}/ofbiz.jar"
OFBIZ_USER=ofbiz
######################################################################
# shutdown settings
ADMIN_PORT=10523
ADMIN_KEY="InsertYourOwnKeyHere!"

# VM args
ADMIN="-Dofbiz.admin.port=$ADMIN_PORT -Dofbiz.admin.key=$ADMIN_KEY"
MEMIF="-Xms128M -Xmx512M"
MISC="-Duser.language=de"
VMARGS="$MEMIF $MISC $DEBUG $RMIIF $ADMIN"
######################################################################
# The original shell function ofbizprocs() does NOT work with bash.
# Therefore simply executing the external program does the job here:

ofbizprocs="pgrep -u ${OFBIZ_USER} java"
# We need the Debian or Ubuntu package procps for this!

start() {
    echo "Starting OFBiz: "
    echo "Testing running OFBiz: "
    if [ "$($ofbizprocs)" != "" ]; then
        echo "OFBiz is already running..."
        return 1
    fi

    # All clear
    cd $OFBIZ_HOME
    umask 007
    /bin/rm -f $OFBIZ_OUT $OFBIZ_LOG
    echo "Now really starting OFBiz: "
    su - $OFBIZ_USER \
-c "cd $OFBIZ_HOME && $JAVA_BINARY $VMARGS $JAVA_ARGS >$OFBIZ_OUT 2>>$OFBIZ_LOG &"
    echo "startup return value: " $?
    return $?
}

# Stop OFBiz
stop() {
    echo -n "Stopping OFBiz: "
    if [ "$($ofbizprocs)" = "" ]; then
        echo "OFBiz is not running..."
        return 1
    fi
    # All clear
    cd $OFBIZ_HOME
    umask 007    
    su - ofbiz \
-c "cd $OFBIZ_HOME && $JAVA_BINARY $VMARGS $JAVA_ARGS -shutdown >$OFBIZ_OUT 2>>$OFBIZ_LOG&"
	sleep 15
    if [ "$($ofbizprocs)" != "" ]; then
        # Let's try to -TERM
        /bin/kill -TERM "$($ofbizprocs)"
    else
        return 0
    fi
	sleep 10
    if [ "$($ofbizprocs)" != "" ]; then
        # Let's try it the hard way!
        /bin/kill -9 "$($ofbizprocs)"
    else
        return 0
    fi
	sleep 10
    if [ "$($ofbizprocs)" != "" ]; then
        echo "Some processes could not be stopped:"
        echo "$($ofbizprocs)"
        echo "A possible solution is to try this command once more!"
        return 1
    else
        return 0
    fi
}

######################################################################
. /lib/lsb/init-functions

case "$1" in
    start)
	log_daemon_msg "Starting Apache Ofbiz" "ofbiz"
	start
	log_end_msg $?
    ;;
  stop)
	log_daemon_msg "Stopping deferred Apache Ofbiz" "ofbiz"
	stop
	log_end_msg $?
    ;;
  force-reload|restart)
    stop
    start
    ;;
  *)
    echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0

...