if [ -z "$2" ]; then
# Default node
+echo Argeo default node
CONF_DIR=/etc/$APP
EXEC_DIR=/var/lib/$APP
+
else
# Instance
INSTANCE=$2
- if [ -z "$STATE_DIRECTORY" ]; then
- INSTANCE_DIR=$HOME/.local/share/$APP.d/$INSTANCE
- else
- # systemd StateDirectory=
- INSTANCE_DIR=$STATE_DIRECTORY
- fi
- if [ -z "$CONFIGURATION_DIRECTORY" ]; then
- CONF_DIR=$HOME/.config/$APP.d/$INSTANCE
- else
- # systemd ConfigurationDirectory=
- CONF_DIR=$CONFIGURATION_DIRECTORY
- fi
-
+echo Argeo instance $INSTANCE
+ if [ -z "$INSTANCE_DIR" ]; then
+ INSTANCE_DIR=$HOME/.local/share/$APP.d/$INSTANCE
+ fi
+ if [ -z "$CONF_DIR" ]; then
+ CONF_DIR=$HOME/.config/$APP.d/$INSTANCE
+ fi
EXEC_DIR=$INSTANCE_DIR
-
- if [ ! -f $CONF_DIR/$APP.ini ]; then
- cp /etc/$APP/$APP.ini $CONF_DIR
- fi
- if [ ! -f $CONF_DIR/log4j.properties ]; then
- cp /etc/$APP/log4j.properties $CONF_DIR
- fi
+# Make sure minimal files are available
+ if [ ! -f $CONF_DIR/$APP.ini ]; then
+ cp /etc/$APP/$APP.ini $CONF_DIR
+ fi
+ if [ ! -f $CONF_DIR/log4j.properties ]; then
+ cp /etc/$APP/log4j.properties $CONF_DIR
+ fi
fi
+# Java
+if [ -z "$JVM" ]; then
JVM=java
+fi
# Directories and files
# Overwrite variables
if [ -f $CONF_DIR/settings.sh ];then
- . $CONF_DIR/settings.sh
+ . $CONF_DIR/settings.sh
fi
RETVAL=0
+## START ##
start() {
- mkdir -p $CONF_RW
- mkdir -p $DATA_DIR
-
- # Merge config files
- printf "## Equinox configuration - Generated by /usr/sbin/nodectl ##\n\n" > $CONFIG_INI
- cat $BASE_CONFIG_INI >> $CONFIG_INI
- printf "\n##\n## $CONF_DIR/$APP.ini\n##\n\n" >> $CONFIG_INI
- cat $CONF_DIR/$APP.ini >> $CONFIG_INI
- for file in `ls -v $CONF_DIRS/*.ini`; do
- printf "\n##\n## $file\n##\n\n" >> $CONFIG_INI
- cat $file >> $CONFIG_INI
- done;
+mkdir -p $CONF_RW
+mkdir -p $DATA_DIR
+
+# Merge config files
+printf "## Equinox configuration - Generated by /usr/sbin/argeoctl ##\n\n" > $CONFIG_INI
+cat $BASE_CONFIG_INI >> $CONFIG_INI
+printf "\n##\n## $CONF_DIR/$APP.ini\n##\n\n" >> $CONFIG_INI
+cat $CONF_DIR/$APP.ini >> $CONFIG_INI
+# Concatenate additional .ini files
+if [ -d "$CONF_DIRS" ]; then
+for file in `ls -v $CONF_DIRS/*.ini`; do
+ printf "\n##\n## $file\n##\n\n" >> $CONFIG_INI
+ cat $file >> $CONFIG_INI
+done;
+fi
- cd $EXEC_DIR
- $JVM \
- -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
- $JAVA_OPTS -jar $OSGI_FRAMEWORK \
- -Dargeo.osgi.sources=$A2_SOURCES \
- -configuration "$CONF_RW" \
- -data "$DATA_DIR"
+cd $EXEC_DIR
+$JVM \
+ -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
+ $JAVA_OPTS -jar $OSGI_FRAMEWORK \
+ -Dargeo.osgi.sources=$A2_SOURCES \
+ -configuration "$CONF_RW" \
+ -data "$DATA_DIR"
}
+## RELOAD ##
reload() {
- echo Not yet implemented
-}
-
-stop() {
- if [ -f $PID_FILE ];then
- PID=`cat $PID_FILE`
- kill -0 $PID &> /dev/null
- PID_EXISTS=$?
- if [ $PID_EXISTS -ne 0 ]; then
- echo Dead $APP process with pid $PID, removing $PID_FILE
- rm -f $PID_FILE
- RETVAL=1
- return $RETVAL
- fi
- else
- echo $APP is not running
- RETVAL=1
- return $RETVAL
- fi
-
- # notifies application by removing the shutdown file
-# rm -f $SHUTDOWN_FILE
- kill $PID
-
- # wait 10 min for application to shutdown, then kill it
- TIMEOUT=$((10*60))
- BEGIN=$(date +%s)
- while kill -0 $PID &> /dev/null
- do
- sleep 1
- NOW=$(date +%s)
- DURATION=$(($NOW-$BEGIN))
- if [ $DURATION -gt $TIMEOUT ]; then
- kill -9 $PID
- echo Forcibly killed $APP with pid $PID
- RETVAL=1
- fi
- done
-
- # remove pid file
- rm -f $PID_FILE
- return $RETVAL
-}
-
-status() {
- if [ -f $PID_FILE ];then
- PID=`cat $PID_FILE`
- else
- echo $APP is not running
- return $RETVAL
- fi
- kill -0 $PID &> /dev/null
- PID_EXISTS=$?
- if [ $PID_EXISTS -eq 0 ]; then
- echo $APP is running with pid $PID ...
- else
- echo No $APP process with pid $PID, removing $PID_FILE
- rm -f $PID_FILE
- fi
- return $RETVAL
+echo Not yet implemented
}
# main
case "$1" in
- start)
- start
- ;;
- reload)
- reload
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- *)
- echo $"Usage: $0 {start|stop|status}"
- exit 1
+start)
+ start
+ ;;
+reload)
+ reload
+ ;;
+*)
+ echo $"Usage: $0 {start|reload}"
+ exit 1
esac
\ No newline at end of file