#!/bin/sh
#
# monitord This is the init script for starting monitord (ZVEI/POCSAG receiver)
#
# chkconfig: - 66 19
# description: monitord
# processname: monitord
# pidfile: /var/run/monitord.pid
#
# basically taken from /etc/init.d/postgresql for CentOS 6.2
# load functions
. /etc/rc.d/init.d/functions
NAME=`basename $0`
if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
then
NAME=${NAME:3}
fi
# SELinux
if [ -x /sbin/runuser ]
then
SU=runuser
else
SU=su
fi
MONITORD=/opt/monitord/monitord
MONITORD_USER=monitord
MONITORD_CONFIG=/opt/monitord/monitord.xml
MONITORD_OPTS=""
MONITORD_STARTUP_LOG=/tmp/monitord-startup.log
if [[ ! -x $MONITORD ]]
then
echo
echo "$MONITORD is missing or not executable"
echo
exit 1
fi
lockfile="/var/lock/subsys/${NAME}"
pidfile="/var/run/monitord.pid"
script_result=0
start() {
if [ -z "$1" ]
then
echo "Waiting 15 seconds for coming up ActiveMQ..."
sleep 15
fi
MONITORD_START="Starting monitord..."
STARTUP_LINE="$MONITORD -c $MONITORD_CONFIG$MONITORD_OPTS"
$SU -c "$STARTUP_LINE &" - $MONITORD_USER >> "$MONITORD_STARTUP_LOG" 2>&1 #< /dev/null
sleep 2
pid=`ps -ef | grep "$STARTUP_LINE" | grep -v "grep" | awk '{ print \$2 }'`
if [ "x$pid" != x ]
then
success "$MONITORD_START"
touch "$lockfile"
echo $pid > "$pidfile"
echo
else
failure "$MONITORD_START"
echo
script_result=1
fi
}
stop() {
echo -n "Stopping monitord service: "
if [ -e "$lockfile" ]
then
kill `cat $pidfile`
ret=$?
if [ $ret -eq 0 ]
then
echo_success
rm -f "$pidfile"
rm -f "$lockfile"
else
echo_failure
script_result=1
fi
else
echo_success
fi
echo
}
restart() {
stop
start
}
status() {
if [ -f $pidfile ]
then
pid=`cat $pidfile`
if [ "x$pid" != "x" ]
then
pidtest=`ps aux | grep "monitord" | grep -v "grep" | grep -v "monitord status"`
if [ "x$pidtest" = "x" ]
then
rm -f $pidfile
echo "Removed stale pid file $pidfile"
pid=""
else
echo "Monitord running"
return 0
fi
fi
fi
echo "Monitord not started"
exit 1
}
case "$1" in
start)
start
;;
start-force)
start now
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo $"Usage: $0 (start|stop|restart|status)"
exit 2
esac
exit $script_result