Mercurial > dive4elements > river
view contrib/init.d/d4e-river @ 9790:75dc4ea60938 3.2.x
Drop using explicit container names
Compose will generate names for the containers and containers can connect
each other on the network via the service names. This avoids the
unnecessary extra "name space" and prepares the application for usage
with different project names.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 20 Jul 2023 10:25:59 +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