Skip to content

Instantly share code, notes, and snippets.

@tomkersten
Created October 17, 2010 05:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save tomkersten/630554 to your computer and use it in GitHub Desktop.
Save tomkersten/630554 to your computer and use it in GitHub Desktop.
/etc/init.d/monit file
#!/bin/sh
### BEGIN INIT INFO
# Provides: monit
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: service and resource monitoring daemon
### END INIT INFO
# /etc/init.d/monit start and stop monit daemon monitor process.
# Fredrik Steen, stone@debian.org
# Stefan Alfredsson, alfs@debian.org
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/monit
CONFIG="/etc/monit/monitrc"
DELAY="/etc/monit/monit_delay"
NAME=monit
DESC="daemon monitor"
# Check if DAEMON binary exist
test -f $DAEMON || exit 0
if [ -f "/etc/default/monit" ]; then
. /etc/default/monit
fi
ARGS="-c $CONFIG -s /var/lib/monit/monit.state"
monit_not_configured () {
printf "%b\n" "monit won't be started/stopped\n\tunless it it's configured"
if [ "$1" != "stop" ]
then
printf "%b\n" "\tplease configure monit and then edit /etc/default/monit"
printf "%b\n" "\tand set the \"startup\" variable to 1 in order to allow "
printf "%b\n" "\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 2>/dev/null >/dev/null
if [ $? -eq 1 ] ; then
echo "Syntax error:"
$DAEMON -t
exit 0
fi
}
monit_checks () {
# Check if startup variable is set to 1, if not we exit.
if [ "$startup" != "1" ]; then
monit_not_configured $1
fi
# Check for emtpy configfile
monit_check_config
# Check permissions of configfile
monit_check_perms
# Check syntax of config file
monit_check_syntax
}
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment