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