#!/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-mongodb # 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 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