117 lines
2.8 KiB
Bash
117 lines
2.8 KiB
Bash
#!/bin/sh
|
|
|
|
ACTION=$1
|
|
CALLER=$2
|
|
|
|
ansi_red="\033[1;31m";
|
|
ansi_white="\033[1;37m";
|
|
ansi_green="\033[1;32m";
|
|
ansi_yellow="\033[1;33m";
|
|
ansi_blue="\033[1;34m";
|
|
ansi_bell="\007";
|
|
ansi_blink="\033[5m";
|
|
ansi_std="\033[m";
|
|
ansi_rev="\033[7m";
|
|
ansi_ul="\033[4m";
|
|
|
|
start() {
|
|
[ "$CRITICAL" != "yes" -a "$CALLER" = "cron" ] && return 7
|
|
[ "$ENABLED" != "yes" ] && return 8
|
|
echo -e -n "$ansi_white Starting $DESC... $ansi_std"
|
|
if [ -n "`pidof $PROC`" ]; then
|
|
echo -e " $ansi_yellow already running. $ansi_std"
|
|
return 0
|
|
fi
|
|
$PRECMD > /dev/null 2>&1
|
|
$PREARGS $PROC $ARGS > /dev/null 2>&1 &
|
|
#echo $PREARGS $PROC $ARGS
|
|
COUNTER=0
|
|
LIMIT=10
|
|
while [ -z "`pidof $PROC`" -a "$COUNTER" -le "$LIMIT" ]; do
|
|
sleep 1;
|
|
COUNTER=`expr $COUNTER + 1`
|
|
done
|
|
$POSTCMD > /dev/null 2>&1
|
|
|
|
if [ -z "`pidof $PROC`" ]; then
|
|
echo -e " $ansi_red failed. $ansi_std"
|
|
logger "Failed to start $DESC from $CALLER."
|
|
return 255
|
|
else
|
|
echo -e " $ansi_green done. $ansi_std"
|
|
logger "Started $DESC from $CALLER."
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
case "$ACTION" in
|
|
stop | restart)
|
|
echo -e -n "$ansi_white Shutting down $PROC... $ansi_std"
|
|
killall $PROC 2>/dev/null
|
|
COUNTER=0
|
|
LIMIT=10
|
|
while [ -n "`pidof $PROC`" -a "$COUNTER" -le "$LIMIT" ]; do
|
|
sleep 1;
|
|
COUNTER=`expr $COUNTER + 1`
|
|
done
|
|
;;
|
|
kill)
|
|
echo -e -n "$ansi_white Killing $PROC... $ansi_std"
|
|
killall -9 $PROC 2>/dev/null
|
|
;;
|
|
esac
|
|
|
|
if [ -n "`pidof $PROC`" ]; then
|
|
echo -e " $ansi_red failed. $ansi_std"
|
|
return 255
|
|
else
|
|
echo -e " $ansi_green done. $ansi_std"
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
check() {
|
|
echo -e -n "$ansi_white Checking $DESC... "
|
|
if [ -n "`pidof $PROC`" ]; then
|
|
echo -e " $ansi_green alive. $ansi_std";
|
|
return 0
|
|
else
|
|
echo -e " $ansi_red dead. $ansi_std";
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
reconfigure() {
|
|
SIGNAL=SIGHUP
|
|
echo -e "$ansi_white Sending $SIGNAL to $PROC... $ansi_std"
|
|
killall -$SIGNAL $PROC 2>/dev/null
|
|
}
|
|
|
|
|
|
for PROC in $PROCS; do
|
|
case $ACTION in
|
|
start)
|
|
start
|
|
;;
|
|
stop | kill )
|
|
check && stop
|
|
;;
|
|
restart)
|
|
check > /dev/null && stop
|
|
start
|
|
;;
|
|
check)
|
|
check
|
|
;;
|
|
reconfigure)
|
|
reconfigure
|
|
;;
|
|
*)
|
|
echo -e "$ansi_white Usage: $0 (start|stop|restart|check|kill|reconfigure)$ansi_std"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
#logger "Leaving ${0##*/}."
|