From 9d7adbd7b4f7ab8d9a89825296beaf0e87e73564 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Fri, 5 Oct 2007 19:24:25 +0000
Subject: [PATCH] add: - new and shiny datamover.sh script - configuration file
 datamover.conf remove: datamover.start and datamover.stop, as they are
 replaced by datamover.sh

SVN: 2005
---
 datamover/dist/datamover.sh       | 138 ++++++++++++++++++++++++++++++
 datamover/dist/datamover.start    |   9 --
 datamover/dist/datamover.stop     |  47 ----------
 datamover/dist/etc/datamover.conf |   5 ++
 4 files changed, 143 insertions(+), 56 deletions(-)
 create mode 100755 datamover/dist/datamover.sh
 delete mode 100755 datamover/dist/datamover.start
 delete mode 100755 datamover/dist/datamover.stop
 create mode 100644 datamover/dist/etc/datamover.conf

diff --git a/datamover/dist/datamover.sh b/datamover/dist/datamover.sh
new file mode 100755
index 00000000000..b7a7809c307
--- /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 a75b254e856..00000000000
--- 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 2ae61f3bec2..00000000000
--- 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 00000000000..88c733363e8
--- /dev/null
+++ b/datamover/dist/etc/datamover.conf
@@ -0,0 +1,5 @@
+#
+# Datamover configuration file
+#
+
+#JAVA_HOME=/usr/java/latest
-- 
GitLab