From f178ab1677cb18c13afc02dee22692c4a80bac16 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Fri, 26 Jun 2015 20:08:07 +0000
Subject: [PATCH] add mongo and catalog service startup scripts

---
 etc/init.d/dm-cat-web-service | 123 ++++++++++++++++++++++++++++++++
 etc/init.d/dm-mongodb         | 127 ++++++++++++++++++++++++++++++++++
 sbin/catWebService.py         |   1 +
 3 files changed, 251 insertions(+)
 create mode 100755 etc/init.d/dm-cat-web-service
 create mode 100755 etc/init.d/dm-mongodb
 create mode 120000 sbin/catWebService.py

diff --git a/etc/init.d/dm-cat-web-service b/etc/init.d/dm-cat-web-service
new file mode 100755
index 00000000..4f5dc10c
--- /dev/null
+++ b/etc/init.d/dm-cat-web-service
@@ -0,0 +1,123 @@
+#!/bin/bash
+
+#
+# dm-cat-web-service
+#
+# Starts the DM WebService daemon
+#
+# chkconfig: 345 98 98
+# description: controls DM Web Service daemon
+
+### BEGIN INIT INFO
+# Provides: dm-cat-web-service
+# Required-Start: $local_fs $network
+# Required-Stop: $local_fs $network
+# Default-Start:  2 3 4 5
+# Default-Stop: 0 1 6
+# Description: Controls DM CAT Web Service daemon
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Arguments
+ACTION=$1
+DM_DB_NAME=$2
+DM_DB_NAME=${DM_DB_NAME:=dm}
+
+# 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_DAEMON_NAME="${DM_DB_NAME}.CatWebService"
+DM_DAEMON_CMD=${DM_ROOT_DIR}/sbin/catWebService.py
+DM_PID_FILE=${DM_INSTALL_DIR}/var/run/${DM_DB_NAME}.cat-web-service.pid
+DM_CONFIG_FILE=${DM_INSTALL_DIR}/etc/${DM_DB_NAME}.cat-web-service.conf
+DM_DAEMON_START_ARGS="-d -p $DM_PID_FILE --config-file $DM_CONFIG_FILE"
+
+# 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_PID_FILE > /dev/null 2>&1
+    if [ $? -eq 0 ]; then
+        PID=`cat $DM_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_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_PID_FILE`
+    kill $PID
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f $DM_PID_FILE && success $"$DM_DAEMON_NAME shutdown" || failure $"$DM_DAEMON_NAME shutdown"
+	echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    start
+}
+
+case "$ACTION" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        restart
+    ;;
+    status)
+        status -p $DM_PID_FILE "$DM_DAEMON_NAME"
+        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
new file mode 100755
index 00000000..30ac83a5
--- /dev/null
+++ b/etc/init.d/dm-mongodb
@@ -0,0 +1,127 @@
+#!/bin/bash
+
+#
+# dm-mongodb
+#
+# Starts the DM Mongo DB daemon
+#
+# chkconfig: 345 98 98
+# description: controls DM Mongo DB daemon
+
+### BEGIN INIT INFO
+# Provides: dm-daq-web-service
+# 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 DB 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_MONGODB_DIR=${DM_SUPPORT_DIR}/mongodb/${DM_HOST_ARCH}
+DM_MONGODB_DATA_DIR=${DM_MONGODB_DIR}/data
+mkdir -p ${DM_MONGODB_DATA_DIR}
+
+DM_DAEMON_NAME="DM MongoDB"
+DM_DAEMON_CMD=${DM_MONGODB_DIR}/bin/mongod
+DM_DAEMON_PID_FILE=${DM_INSTALL_DIR}/var/run/mongodb.pid
+DM_DAEMON_LOG_FILE=${DM_INSTALL_DIR}/var/log/mongodb.log
+DM_DAEMON_START_ARGS="--fork --pidfilepath $DM_DAEMON_PID_FILE --logpath $DM_DAEMON_LOG_FILE --bind_ip $DM_MONGODB_HOST --port $DM_MONGODB_PORT --dbpath $DM_MONGODB_DATA_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`
+    kill $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
+    start
+}
+
+case "$ACTION" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        restart
+    ;;
+    status)
+        status -p $DM_DAEMON_PID_FILE "$DM_DAEMON_NAME"
+        RETVAL=$?
+    ;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart}"
+        RETVAL=2
+esac
+
+exit $RETVAL
diff --git a/sbin/catWebService.py b/sbin/catWebService.py
new file mode 120000
index 00000000..7d6a444c
--- /dev/null
+++ b/sbin/catWebService.py
@@ -0,0 +1 @@
+../src/python/dm/cat_web_service/service/catWebService.py
\ No newline at end of file
-- 
GitLab