1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: monit
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: $all
# Should-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: service and resource monitoring daemon
# Description: monit is a utility for managing and monitoring
# processes, programs, files, directories and filesystems
# on a Unix system. Monit conducts automatic maintenance
# and repair and can execute meaningful causal actions
# in error situations.
### END INIT INFO
set -e
. /lib/lsb/init-functions
DAEMON=/usr/bin/monit
CONFIG="/etc/monit/monitrc"
DELAY="/etc/monit/monit_delay"
NAME=monit
DESC="daemon monitor"
MONIT_OPTS=
PID="/var/run/$NAME.pid"
# Check if DAEMON binary exist
[ -f $DAEMON ] || exit 0
[ -f "/etc/default/$NAME" ] && . /etc/default/$NAME
# For backward compatibility, handle startup variable:
if [ -n "$startup" ]
then
if [ "$1" = "start" ]
then
printf "\tPlease, use START variable in /etc/default/monit\n"
printf "\tto enable/disable $NAME startup.\n"
fi
if [ -z "$START" ] && [ "$startup" -eq 1 ]
then
START="yes"
fi
fi
# For backward compatibility, handle CHECK_INTERVALS variable:
if [ -n "$CHECK_INTERVALS" ]
then
if [ "$1" = "start" ]
then
printf "\tPlease, use MONIT_OPTS variable in /etc/default/monit\n"
printf "\tto specify command line options for $NAME.\n"
fi
MONIT_OPTS="$MONIT_OPTS -d $CHECK_INTERVALS"
fi
MONIT_OPTS="-c $CONFIG $MONIT_OPTS"
monit_not_configured () {
if [ "$1" != "stop" ]
then
printf "\tplease configure $NAME and then edit /etc/default/$NAME\n"
printf "\tand set the \"START\" variable to \"yes\" in order to allow\n"
printf "\t$NAME to start\n"
fi
exit 0
}
monit_check_config () {
# Check for emtpy config.
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 [ -f $DELAY ]
then
printf "Warning: Please, set start delay for $NAME in config file\n"
printf " and delete $DELAY file.\n"
if [ ! -x $DELAY ]
then
printf "Warning: A delayed start file exists ($DELAY)\n"
printf " but it is not executable.\n"
else
$DELAY &
fi
fi
}
monit_checks () {
# Check if START variable is set to "yes", if not we exit.
if [ "$START" != "yes" ]
then
monit_not_configured $1
fi
# Check for emtpy configfile
monit_check_config
# Check permissions of configfile
monit_check_perms
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
monit_checks $1
if start-stop-daemon --start --quiet --oknodo \
--pidfile $PID --exec $DAEMON \
-- $MONIT_OPTS
then
log_end_msg 0
else
log_end_msg 1
fi
monit_delayed_monitoring
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
if start-stop-daemon --retry TERM/5/KILL/5 --oknodo --stop --quiet \
--pidfile $PID --exec $DAEMON
then
log_end_msg 0
else
log_end_msg 1
fi
;;
reload)
log_daemon_msg "Reloading $DESC configuration" "$NAME"
if start-stop-daemon --stop --signal HUP --quiet \
--oknodo --pidfile $PID \
--exec $DAEMON -- $MONIT_OPTS
then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart|force-reload)
$0 stop
$0 start
;;
syntax)
$DAEMON $MONIT_OPTS -t
;;
status)
status_of_proc -p $PID $DAEMON $NAME
;;
*)
log_action_msg "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|syntax|status}"
;;
esac
exit 0
|