#!/bin/sh JVM=java . /etc/osgiboot/osgi-service-settings.sh APP=$1 CONF_DIR=/etc/$APP if [ -f $CONF_DIR/settings.sh ];then . $CONF_DIR/settings.sh fi LIB_DIR=/usr/share/$APP/lib # read/write EXEC_DIR=/var/lib/$APP DATA_DIR=$EXEC_DIR/data CONF_RW=$EXEC_DIR/conf LOG_FILE=/var/log/$APP.log RUN_DIR=/var/run PID_FILE=$RUN_DIR/$APP.pid SHUTDOWN_FILE=$RUN_DIR/$APP.shutdown OSGI_INSTALL_AREA=/usr/share/osgiboot/lib OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar RETVAL=0 start() { cp $CONF_DIR/config.ini $CONF_RW/config.ini touch $SHUTDOWN_FILE cd $EXEC_DIR $JVM \ -Dosgi.bundles="org.argeo.osgi.boot.jar@start" \ -Dargeo.osgi.bundles="$CONF_DIR/modules;in=*,$LIB_DIR;in=*" \ -Dargeo.osgi.shutdownFile="$SHUTDOWN_FILE" \ -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \ $JAVA_OPTS -jar $OSGI_FRAMEWORK \ -clean \ -configuration "$CONF_RW" \ -data "$DATA_DIR" \ &>> $LOG_FILE & PID=$! echo $PID > $PID_FILE echo Started $APP with pid $PID return $RETVAL } stop() { if [ -f $PID_FILE ];then PID=`cat $PID_FILE` else return $RETVAL fi rm -f $SHUTDOWN_FILE timeout 5m sh << EOF while kill -0 $PID &> /dev/null; do sleep 1; done EOF TIMEOUT_EXIT=$? if [ $TIMEOUT_EXIT -eq 124 ];then kill -9 $PID fi rm -f $PID_FILE echo Stopped $APP with pid $PID return $RETVAL } # See how we were called. case "$2" in start) start ;; stop) stop ;; restart) stop start RETVAL=$? ;; status) if [ -f $PID_FILE ];then PID=`cat $PID_FILE` echo $APP is running with pid $PID ... else echo $APP is not running fi ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac