#!/bin/sh # /etc/init.d/monit start and stop monit daemon monitor process. # Fredrik Steen, stone@debian.org : PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/bin/monit CONFIG="/etc/monitrc" NAME=monit DESC="daemon monitor" set -e # Check if DAEMON binary exist test -f $DAEMON || exit 0 ARGS="-c $CONFIG" monit_not_configured () { echo -e "monit won't be started/stopped\n\tunless it it's configured" if [ "$1" != "stop" ] then echo -e "\tplease configure monit and then edit /etc/default/monit" echo -e "\tand set the \"startup\" variable to 1 in order to allow " echo -e "\tmonit to start" fi exit 0 } monit_check_config () { # Check for emtpy config, probably default configfile. if [ "`grep -s -v \"^#\" $CONFIG`" = "" ]; then echo "empty config, please edit $CONFIG." exit 0 fi } monit_check_perms () { # Check the permission on configfile. # The permission must not have more than -rwx------ (0700) permissions. # Skip checking, fix perms instead. /bin/chmod go-rwx $CONFIG } monit_delayed_monitoring () { if [ -x $DELAY ]; then $DELAY & elif [ -f $DELAY ]; then echo echo "[WARNING] A delayed start file exists ($DELAY) but it is not executable." fi } monit_check_syntax () { $DAEMON -t; # if [ $? ] ; then # echo "syntax good" # else # echo "syntax bad" # fi } monit_checks () { # Check for emtpy configfile monit_check_config # Check permissions of configfile monit_check_perms } case "$1" in start) echo -n "Starting $DESC: " monit_checks $1 echo -n "$NAME" start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON > /dev/null 2>&1 -- $ARGS monit_delayed_monitoring echo "." ;; stop) echo -n "Stopping $DESC: " #monit_checks $1 echo -n "$NAME" start-stop-daemon --retry 5 --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON > /dev/null 2>&1 echo "." ;; restart|force-reload) $0 stop $0 start ;; syntax) monit_check_syntax ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|syntax}" >&2 exit 1 ;; esac exit 0