diff --git a/datamover/dist/datamover.sh b/datamover/dist/datamover.sh new file mode 100755 index 0000000000000000000000000000000000000000..b7a7809c307cc3b85dc29ffc2adaceaaea282b98 --- /dev/null +++ b/datamover/dist/datamover.sh @@ -0,0 +1,138 @@ +#!/bin/bash +# +# Control script for CISD Datamover on UNIX / Linux systems +# ------------------------------------------------------------------------- + +awkBin() +{ + # We need a awk that accepts variable assignments with '-v' + case `uname -s` in + "SunOS") + echo "nawk" + return + ;; + esac + # default + echo "awk" +} + +isPIDRunning() +{ + if [ "$1" = "" ]; then + return 0 + fi + # This will have a return value of 0 on BSDish systems + isBSD="`ps aux > /dev/null 2>&1; echo $?`" + AWK=`awkBin` + if [ "$isBSD" = "0" ]; then + if [ "`ps aux | $AWK -v PID=$1 '{if ($2==PID) {print "FOUND"}}'`" = "FOUND" ]; then + return 0 + else + return 1 + fi + else + if [ "`ps -ef | $AWK -v PID=$1 '{if ($2==PID) {print "FOUND"}}'`" = "FOUND" ]; then + return 0 + else + return 1 + fi + fi +} + +# +# definitions +# + +PIDFILE=datamover.pid +CONFFILE=etc/datamover.conf +STARTUPLOG=log/startup_log.txt + +# +# change to installation directory +# +bin=$0 +if [ -L $bin ]; then + bin=`dirname $bin`/`readlink $bin` +fi +WD=`dirname $bin` +cd $WD + +# +# source configuration script, if any +# +test -f $CONFFILE && source $CONFFILE +if [ "$JAVA_HOME" != "" ]; then + JAVA_HOME="$JAVA_HOME/bin/" +fi + +case "$1" in + start) + echo -n "Starting Datamover " + + shift 1 + ${JAVA_HOME}java -jar lib/datamover.jar "$@" > $STARTUPLOG 2>&1 & echo $! > $PIDFILE + if [ $? -eq 0 ]; then + # wait for initial self-test to finish" + sleep 1 + PID=`cat $PIDFILE` + isPIDRunning $PID + if [ $? -eq 0 ]; then + echo "(pid $PID)" + else + rm $PIDFILE + echo "FAILED - see $WD/$STARTUPLOG for details" + fi + else + echo "FAILED" + fi + ;; + stop) + echo -n "Stopping Datamover " + if [ -f $PIDFILE ]; then + PID=`cat $PIDFILE` + isPIDRunning $PID + if [ $? -eq 0 ]; then + kill $PID + if [ $? -eq 0 ]; then + echo "(pid $PID)" + rm $PIDFILE + else + echo "FAILED" + fi + else + rm $PIDFILE + echo "(was dead - cleaned up pid file)" + fi + else + echo "(not running - nothing to do)" + fi + ;; + status) + if [ -f $PIDFILE ]; then + PID=`cat $PIDFILE` + isPIDRunning $PID + if [ $? -eq 0 ]; then + echo "Datamover is running (pid $PID)" + else + echo "Datamover is dead (stale pid $PID)" + fi + else + echo "Datamover is not running" + fi + ;; + recover) + echo "Triggering recovery cycle" + touch .MARKER_recovery + ;; + restart) + $0 stop + $0 start + ;; + version) + ${JAVA_HOME}java -jar lib/datamover.jar --version + ;; + *) + echo $"Usage: $0 {start|stop|restart|status|recover|version}" + exit 1 +esac +exit 0 diff --git a/datamover/dist/datamover.start b/datamover/dist/datamover.start deleted file mode 100755 index a75b254e85690c49b0625b61e0bf06c784e9514d..0000000000000000000000000000000000000000 --- a/datamover/dist/datamover.start +++ /dev/null @@ -1,9 +0,0 @@ -#! /bin/sh -./datamover.stop - -if [ "$JAVA_HOME" != "" ]; then - JAVA_HOME="$JAVA_HOME/bin/" -fi - -${JAVA_HOME}java -jar lib/datamover.jar "$@" & echo $! > datamover.pid -echo Datamover successfuly started in the background. \ No newline at end of file diff --git a/datamover/dist/datamover.stop b/datamover/dist/datamover.stop deleted file mode 100755 index 2ae61f3bec2363409eff29b1e2ec6a0c0af7d774..0000000000000000000000000000000000000000 --- a/datamover/dist/datamover.stop +++ /dev/null @@ -1,47 +0,0 @@ -#! /bin/sh - -awkBin() -{ - # We need a awk that accepts variable assignments with '-v' - case `uname -s` in - "SunOS") - echo "nawk" - return - ;; - esac - # default - echo "awk" -} - -isPIDRunning() -{ - if [ "$1" = "" ]; then - return 0 - fi - # This will have a return value of 0 on BSDish systems - isBSD="`ps aux > /dev/null 2>&1; echo $?`" - AWK=`awkBin` - if [ "$isBSD" = "0" ]; then - if [ "`ps aux | $AWK -v PID=$1 '{if ($2==PID) {print "FOUND"}}'`" = "FOUND" ]; then - return 0 - else - return 1 - fi - else - if [ "`ps -ef | $AWK -v PID=$1 '{if ($2==PID) {print "FOUND"}}'`" = "FOUND" ]; then - return 0 - else - return 1 - fi - fi -} - -if [ -f datamover.pid ]; then - PID=`cat datamover.pid` - isPIDRunning $PID - if [ $? -eq 0 ]; then - kill $PID - echo "Previously running program with PID $PID was found and killed" - fi - rm datamover.pid -fi diff --git a/datamover/dist/etc/datamover.conf b/datamover/dist/etc/datamover.conf new file mode 100644 index 0000000000000000000000000000000000000000..88c733363e89283ab6ef5af4a817dc1636ed76b8 --- /dev/null +++ b/datamover/dist/etc/datamover.conf @@ -0,0 +1,5 @@ +# +# Datamover configuration file +# + +#JAVA_HOME=/usr/java/latest