# Only set supported environment variables if not already set
[ -z "$AQUARIUM_HOME" ] && AQUARIUM_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
-[ -z "$AQUARIUM_PROP" ] && AQUARIUM_PROP="-Dlog4j.debug=true"
+[ -z "$AQUARIUM_PROP" ] && AQUARIUM_PROP=""
[ -z "$AQUARIUM_OPTS" ] && AQUARIUM_OPTS=""
[ -z "$JAVA_OPTS" ] && JAVA_OPTS="-Xms1024M -Xmx4096M"
+export AQUARIUM_HOME
-AQMAIN=gr.grnet.aquarium.Main
-PID=$AQUARIUM_HOME/bin/aquarium.pid
-LIB=$AQUARIUM_HOME/lib
-LOG=$AQUARIUM_HOME/logs/aquarium.log
-CONF=$AQUARIUM_HOME/conf
+PID_FILE=$AQUARIUM_HOME/bin/aquarium.pid
+
+AQUARIUM_LIB=$AQUARIUM_HOME/lib
+AQUARIUM_CONF=$AQUARIUM_HOME/conf
+AQUARIUM_LOGFILE=$AQUARIUM_HOME/logs/aquarium.log
+
+AQUARIUM_MAIN_CLASS=gr.grnet.aquarium.Main
+
+# We use jbootstrap to start the application.
+# No need to manually setup the CLASSPATH
+JBOOT_JAR=$AQUARIUM_LIB/jbootstrap-3.0.0.jar
+JBOOT_MAIN_CLASS=com.ckkloverdos.jbootstrap.Main
# Check the application status
check_status() {
- if [ -f $PID ]
+ if [ -f $PID_FILE ]
then
- aqrunning=`ps -ef|grep java|grep aquarium`
+ aqrunning=`ps -ef|grep java|grep $AQUARIUM_MAIN_CLASS`
if [ -z "$aqrunning" ]
then
return 0
echo "Starting Aquarium"
- # Build classpath
- CLASSPATH=`find $LIB -type f|grep jar$|tr '\n' ':'|sed -e 's/\:$//'`
-
- # load log4j from classpath
- CLASSPATH=$CONF:$CLASSPATH
-
- echo "Using CLASSPATH $CLASSPATH"
- echo "Using AQUARIUM_HOME $AQUARIUM_HOME"
- echo "Using MAIN $AQMAIN"
- echo "Using AQUARIUM_PROP $AQUARIUM_PROP"
- echo "Using JAVA_OPTS $JAVA_OPTS"
-
- java $JAVA_OPTS -cp $CLASSPATH $AQUARIUM_PROP $AQMAIN >> $LOG 2>&1 &
- echo $! > $PID
- echo "OK [pid = $!]"
+ CLASSPATH=$JBOOT_JAR
+
+ echo "Using CLASSPATH=$CLASSPATH"
+ echo "Using AQUARIUM_HOME=$AQUARIUM_HOME"
+ echo "Using AQUARIUM_MAIN_CLASS=$AQUARIUM_MAIN_CLASS"
+ echo "Using AQUARIUM_PROP=$AQUARIUM_PROP"
+ echo "Using JAVA_OPTS=$JAVA_OPTS"
+ echo "nohup java $JAVA_OPTS -cp $CLASSPATH $AQUARIUM_PROP $JBOOT_MAIN_CLASS -lib $AQUARIUM_LIB $AQUARIUM_MAIN_CLASS > $AQUARIUM_LOGFILE"
+
+ nohup java $JAVA_OPTS -cp $CLASSPATH $AQUARIUM_PROP $JBOOT_MAIN_CLASS -lib $AQUARIUM_LIB $AQUARIUM_MAIN_CLASS > $AQUARIUM_LOGFILE 2>&1 &
+ echo $! > $PID_FILE
+ echo "PID="`cat $PID_FILE`
}
# Stops the application
# Kills the application process
echo -n "Stopping Aquarium: "
- kill `cat $PID`
- rm $PID
+ kill `cat $PID_FILE`
+ rm $PID_FILE
echo "OK"
}
check_status
if [ $? -ne 0 ]
then
- echo "Aquarium is running (pid=$pid)"
+ echo "Aquarium is running (pid="`cat $PID_FILE`")"
else
echo "Aquarium is stopped"
fi
}
+ps_aquarium() {
+ ps -ef | grep java | grep gr.grnet.aquarium.Main
+}
+
+forcekill() {
+ local PIDS=`ps_aquarium | awk '{print $2}'`
+ for pid in $PIDS; do
+ echo Killing $pid
+ kill -9 $pid
+ done
+}
+
# Main logic, a simple case to call functions
case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- debug)
- start "debug"
- ;;
- restart)
- stop
- start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status|debug}"
- exit 1
-esac
-
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ ps)
+ ps_aquarium
+ ;;
+ forcekill)
+ forcekill
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|status|ps|forcekill}"
+ exit 1
+ esac
exit 0
# vim: set sta sts=4 shiftwidth=4 sw=4 et ai :