view contrib/init.d/d4e-river @ 8716:b5ac17a10d22

(issue1754) Only create new Recommendations I belive that this was the original intent of this function otherwise why create a list of newRecommendations at all if we always recreate all Recommendations again. With the side effect that old recommendations had no master artifact the created artifacts of already existing artifacts did not have enough information to live and were not shown in the client so this problem was hidden.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 27 Apr 2015 11:45:31 +0200
parents 0000ed802cad
children
line wrap: on
line source
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: d4e-server
# Required-Start: $network $syslog $remote_fs
# Should-Start: $named $syslog $time
# Required-Stop: $network $syslog
# Should-Stop: $named $syslog $time
# Default-Start:  3 5
# Default-Stop:   0 1 2 6
# Short-Description: Dive4Elements server
# Description:    Start Dive4Elements server
### END INIT INFO

RUNAS=flys
START_SCRIPT="/opt/flys/d4e-start"
NAME="$(basename $0)"
SHUTDOWN_WAIT="30"

export FLYSDIR="/opt/flys/current/server"

unset ISBOOT
if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
    NAME="${NAME:3}"
    ISBOOT="1"
fi

# remove SUSE's rc name
if [ "${NAME:0:2}" = "rc" ]; then
    NAME="${NAME:2}"
fi


export LOGFILE=/var/log/d4e-river.log
export ARGS="-Xmx256m \
     -server \
     -Djava.awt.headless=true \
     -Dflys.datacage.recommendations.development=false \
     -Djava.io.tmpdir=$FLYSDIR/cache \
     -Dflys.backend.enablejmx=true \
     -Dflys.uesk.keep.artifactsdir=false \
     -Dwsplgen.bin.path=$FLYSDIR/bin/wsplgen \
     -Dwsplgen.log.output=false \
     -Dlog4j.configuration=file://$FLYSDIR/conf/log4j.properties \
     -Dartifact.database.dir=$FLYSDIR/conf"
export MAINCLASS=org.dive4elements.artifactdatabase.App

# For SELinux we need to use 'runuser' not 'su'
if [ -x "/sbin/runuser" ]; then
    SU="/sbin/runuser"
else
    SU="/bin/su -m"
fi

# pulled from RHEL4 /etc/rc.d/init.d/functions
function checkpid() {
    local i
    for i in $* ; do
        if [ -d "/proc/${i}" ]; then
            return 0
        fi
    done
    return 1
}

. /etc/rc.status
rc_reset

function start() {
    echo -n "Starting D4E-river server... "
    if [ -f "/var/lock/subsys/${NAME}" ] ; then
        if [ -f "/var/run/${NAME}.pid" ]; then
            read kpid < /var/run/${NAME}.pid
                if checkpid $kpid 2>&1; then
                    echo "$NAME process already running with pid $kpid"
                    rc_failed 0
                    exit
                else
                    echo "lock file found but no process running for pid $kpid, continuing"
                    rc_failed 7
                fi
        fi
    fi

    export D4E_PID="/var/run/${NAME}.pid"
    touch $D4E_PID
    chown $RUNAS $D4E_PID
    touch $LOGFILE
    chown $RUNAS $LOGFILE

    for l in `find "$FLYSDIR/bin/lib" -name \*.jar -print`; do
        CLASSPATH=$CLASSPATH:$l
    done

    export CLASSPATH

    $SU $RUNAS -c "$START_SCRIPT"
    #>> $LOGFILE 2>&1
    RETVAL="$?"
    if [ "$RETVAL" -eq 0 ]; then
        rc_failed 0
        touch /var/lock/subsys/${NAME}
    else
        rc_failed 7
    fi
    rc_status -v
}

function stop() {
    echo -n "Shutting down D4E-River"
    if [ -f "/var/lock/subsys/${NAME}" ]; then
        count="0"
        if [ -f "/var/run/${NAME}.pid" ]; then
            read kpid < /var/run/${NAME}.pid
            kill $kpid
            until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
                  [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
                if [ "$SHUTDOWN_VERBOSE" = "true" ]; then
                    echo -n -e "\nwaiting for processes $kpid to exit"
                fi
                sleep 1
                let count="${count}+1"
            done
            if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
                if [ "$SHUTDOWN_VERBOSE" = "true" ]; then
                    echo -n -e "\nkilling processes which didn't stop"
                    echo -n -e "after "
                    echo -n "$SHUTDOWN_WAIT seconds"
                fi
                kill -9 $kpid
            fi
            rc_failed 0
            if [ "$count" -gt "0" ]; then
                echo -n -e "\n"
            fi
        fi
        rm -f /var/lock/subsys/${NAME} /var/run/${NAME}.pid
    fi
    rc_status -v
}




case "$1" in
  start)
      start
    ;;
  stop)
      stop
    ;;
  restart)
    $0 stop && $0 start
    ;;
  *)
    echo "Usage: $0 [start|stop|restart]"
esac

http://dive4elements.wald.intevation.org