view contrib/init.d/d4e-river @ 8472:3f505fba522f

(issue1772) Use 0.001km tolarance instead of 0.1 to find matching km. There is no sense to use a define here. I will not write static final double NULLPOINTNULLNULLONE=0.001 if i just want to use that value and not any other value which may make sense in some other place. Using hardcoded values can have its merits and makes the code easier to read.
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 18 Nov 2014 15:24:40 +0100
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