X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=dist%2Fargeo-node%2Frpm%2Fusr%2Fsbin%2Fargeoctl;h=c355308140cbae1b677ccbbacda9d54db6477200;hb=99d4f816a0ced50c3733a02eae12738b5a61f03b;hp=67b08ebcd438fd2a0bee9e057789d6a5d93481c2;hpb=7a780ec6ecb93f6d0f10c782ac861eb0a073a182;p=lgpl%2Fargeo-commons.git diff --git a/dist/argeo-node/rpm/usr/sbin/argeoctl b/dist/argeo-node/rpm/usr/sbin/argeoctl index 67b08ebcd..c35530814 100755 --- a/dist/argeo-node/rpm/usr/sbin/argeoctl +++ b/dist/argeo-node/rpm/usr/sbin/argeoctl @@ -3,35 +3,34 @@ APP=argeo 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 @@ -50,112 +49,52 @@ OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar # 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