From 9ada6507bb52808534f8ea42490d391011f65d70 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Tue, 26 Jan 2016 18:25:11 +0000
Subject: [PATCH] updated control scripts; added mongo-express control script

---
 etc/init.d/dm-cat-web-service |   2 +-
 etc/init.d/dm-daq-web-service |   2 +-
 etc/init.d/dm-ds-web-service  |   2 +-
 etc/init.d/dm-mongo-express   | 143 ++++++++++++++++++++++++++++++++++
 etc/init.d/dm-mongodb         |  10 +--
 setup.sh                      |   1 +
 6 files changed, 152 insertions(+), 8 deletions(-)
 create mode 100755 etc/init.d/dm-mongo-express

diff --git a/etc/init.d/dm-cat-web-service b/etc/init.d/dm-cat-web-service
index 8c52c721..895ac0a8 100755
--- a/etc/init.d/dm-cat-web-service
+++ b/etc/init.d/dm-cat-web-service
@@ -117,7 +117,7 @@ case "$ACTION" in
         restart
     ;;
     status)
-        status -p $DM_PID_FILE "$DM_DAEMON_NAME"
+        status -p $DM_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
         RETVAL=$?
     ;;
     *)
diff --git a/etc/init.d/dm-daq-web-service b/etc/init.d/dm-daq-web-service
index 77b83974..0d4979e2 100755
--- a/etc/init.d/dm-daq-web-service
+++ b/etc/init.d/dm-daq-web-service
@@ -117,7 +117,7 @@ case "$ACTION" in
         restart
     ;;
     status)
-        status -p $DM_PID_FILE "$DM_DAEMON_NAME"
+        status -p $DM_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
         RETVAL=$?
     ;;
     *)
diff --git a/etc/init.d/dm-ds-web-service b/etc/init.d/dm-ds-web-service
index 945505ac..c211f304 100755
--- a/etc/init.d/dm-ds-web-service
+++ b/etc/init.d/dm-ds-web-service
@@ -117,7 +117,7 @@ case "$ACTION" in
         restart
     ;;
     status)
-        status -p $DM_PID_FILE "$DM_DAEMON_NAME"
+        status -p $DM_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
         RETVAL=$?
     ;;
     *)
diff --git a/etc/init.d/dm-mongo-express b/etc/init.d/dm-mongo-express
new file mode 100755
index 00000000..8482eec4
--- /dev/null
+++ b/etc/init.d/dm-mongo-express
@@ -0,0 +1,143 @@
+#!/bin/bash
+
+#
+# dm-mongo-express
+#
+# Starts the DM Mongo Express daemon
+#
+# chkconfig: 345 98 98
+# description: controls DM Mongo Express daemon
+
+### BEGIN INIT INFO
+# Provides: dm-mongo-express
+# Required-Start: $local_fs $network
+# Required-Stop: $local_fs $network
+# Default-Start:  2 3 4 5
+# Default-Stop: 0 1 6
+# Description: Controls DM Mongo Express daemon
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Arguments
+ACTION=$1
+
+# Set root to default if needed.
+MY_DIR=`dirname $0` && cd $MY_DIR && MY_DIR=`pwd`
+if [ -z "${DM_ROOT_DIR}" ]; then
+    DM_ROOT_DIR=$MY_DIR/../..
+fi
+
+# Source environment file.
+DM_USER=`id -nu`
+DM_HOST=`hostname -s`
+DM_ENV_FILE=${DM_ROOT_DIR}/setup.sh
+if [ ! -f ${DM_ENV_FILE} ]; then
+    echo "Environment file ${DM_ENV_FILE} does not exist." 
+    exit 2
+fi
+. ${DM_ENV_FILE} > /dev/null
+
+mkdir -p ${DM_INSTALL_DIR}/var/run
+mkdir -p ${DM_INSTALL_DIR}/var/log
+
+DM_MONGODB_HOST=${DM_MONGODB_HOST:=127.0.0.1}
+DM_MONGODB_PORT=${DM_MONGODB_PORT:=27017}
+DM_NODE_DIR=${DM_SUPPORT_DIR}/node/${DM_HOST_ARCH}
+DM_FOREVER_DIR=${DM_NODE_DIR}/bin/node_modules/forever
+DM_MONGO_EXPRESS_DIR=${DM_NODE_DIR}/bin/node_modules/mongo-express
+
+DM_DAEMON_NAME="DM Mongo Express"
+DM_DAEMON_CMD=${DM_FOREVER_DIR}/bin/forever
+DM_DAEMON_WORK_DIR=${DM_INSTALL_DIR}/var/run/mongo-express
+DM_DAEMON_PID_FILE=${DM_INSTALL_DIR}/var/run/mongo-express.pid
+DM_DAEMON_LOG_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.log
+DM_DAEMON_OUT_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.put
+DM_DAEMON_ERR_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.err
+DM_DAEMON_START_ARGS="start \
+    --sourceDIR $DM_MONGO_EXPRESS_DIR \
+    --workingDir $DM_DAEMON_WORK_DIR \
+    -p $MONGO_EXPRESS_FOREVER_PATH \
+    --pidFile $DM_DAEMON_PID_FILE \
+    -l $DM_DAEMON_LOG_FILE \
+    -o $DM_DAEMON_OUT_FILE \
+    -e $DM_DAEMON_ERR_FILE \
+    --append \
+    --killSignal=SIGTERM \
+    $DM_MONGO_EXPRESS_DIR/app.js"
+
+mkdir -p $DM_DAEMON_WORK_DIR
+
+# Determine su command
+SU=su
+if [ -x /sbin/runuser ]; then
+    SU=runuser
+fi
+
+RETVAL=0
+start() {
+    # Check if service is already running
+    status -p $DM_DAEMON_PID_FILE > /dev/null 2>&1
+    if [ $? -eq 0 ]; then
+        PID=`cat $DM_DAEMON_PID_FILE`
+        echo $"$DM_DAEMON_NAME daemon is already running (pid: $PID)."	
+        RETVAL=1
+        return $RETVAL
+    fi
+    echo -n $"Starting $DM_DAEMON_NAME daemon: "	
+    # Check if we're a privileged user
+    if [ `id -u` = 0 -a ${DM_USER} != "root" ]; then
+        $SU -m -c "${DM_DAEMON_CMD} ${DM_DAEMON_START_ARGS}" ${DM_USER}
+    else
+        ${DM_DAEMON_CMD} ${DM_DAEMON_START_ARGS}
+    fi
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] &&  success $"$DM_DAEMON_NAME startup" || failure $"$DM_DAEMON_NAME startup"
+    echo
+    return $RETVAL
+}
+
+stop() {
+    # Check if service is already running
+    status -p $DM_DAEMON_PID_FILE > /dev/null 2>&1
+    if [ $? -ne 0 ]; then
+        echo $"$DM_DAEMON_NAME daemon is not running."	
+        RETVAL=1
+        return $RETVAL
+    fi
+    echo -n $"Stopping $DM_DAEMON_NAME daemon: "
+    PID=`cat $DM_DAEMON_PID_FILE`
+    $DM_DAEMON_CMD stop $PID
+    RETVAL=$?
+    [ $RETVAL -eq 0 ] && rm -f $DM_DAEMON_PID_FILE && success $"$DM_DAEMON_NAME shutdown" || failure $"$DM_DAEMON_NAME shutdown"
+    echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    sleep 1
+    start
+}
+
+case "$ACTION" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        restart
+    ;;
+    status)
+        status -p $DM_DAEMON_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
+        RETVAL=$?
+    ;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart}"
+        RETVAL=2
+esac
+
+exit $RETVAL
diff --git a/etc/init.d/dm-mongodb b/etc/init.d/dm-mongodb
index 043801b4..70aea02a 100755
--- a/etc/init.d/dm-mongodb
+++ b/etc/init.d/dm-mongodb
@@ -9,7 +9,7 @@
 # description: controls DM Mongo DB daemon
 
 ### BEGIN INIT INFO
-# Provides: dm-daq-web-service
+# Provides: dm-mongodb
 # Required-Start: $local_fs $network
 # Required-Stop: $local_fs $network
 # Default-Start:  2 3 4 5
@@ -94,9 +94,9 @@ stop() {
     echo -n $"Stopping $DM_DAEMON_NAME daemon: "
     PID=`cat $DM_DAEMON_PID_FILE`
     kill $PID
-	RETVAL=$?
-	[ $RETVAL -eq 0 ] && rm -f $DM_DAEMON_PID_FILE && success $"$DM_DAEMON_NAME shutdown" || failure $"$DM_DAEMON_NAME shutdown"
-	echo
+    RETVAL=$?
+    [ $RETVAL -eq 0 ] && rm -f $DM_DAEMON_PID_FILE && success $"$DM_DAEMON_NAME shutdown" || failure $"$DM_DAEMON_NAME shutdown"
+    echo
     return $RETVAL
 }
 
@@ -117,7 +117,7 @@ case "$ACTION" in
         restart
     ;;
     status)
-        status -p $DM_DAEMON_PID_FILE "$DM_DAEMON_NAME"
+        status -p $DM_DAEMON_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
         RETVAL=$?
     ;;
     *)
diff --git a/setup.sh b/setup.sh
index 50c45767..25c7d179 100644
--- a/setup.sh
+++ b/setup.sh
@@ -53,6 +53,7 @@ prependPathIfDirExists() {
 }
 
 # Setup path and other variables
+prependPathIfDirExists $DM_SUPPORT_DIR/node/$DM_HOST_ARCH/bin
 prependPathIfDirExists $DM_SUPPORT_DIR/mongodb/$DM_HOST_ARCH/bin
 prependPathIfDirExists $DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH/bin
 prependPathIfDirExists $DM_SUPPORT_DIR/java/$DM_HOST_ARCH/bin
-- 
GitLab