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