return 0
}
+#####################################################################
+changed=0
if [ ! -d "$MONIT_DIR" ]; then
mkdir -p "$MONIT_DIR"
-else
- for i in $(find "$MONIT_DIR" -name '*.conf'); do
- check_service $i
- if [ ! $RET -eq 0 ]; then
- serviceconf=$(basename $i)
- echo "CN: Disabled $serviceconf"
- mv -f $i $i.disabled
- fi
- done
fi
-for i in $(find "$TEMPLATES_DIR" -name '*.conf'); do
+for i in $(find "$MONIT_DIR" -name '*.conf'); do
check_service $i
- if [ $RET -eq 0 ]; then
+ if [ ! $RET -eq 0 ]; then
serviceconf=$(basename $i)
- if [ ! -r "$MONIT_DIR"/$serviceconf ]; then
- echo "CN: Enabled $serviceconf"
- cp -a $i "$MONIT_DIR"
+ echo "CN: Disabled $serviceconf"
+ mv -f $i $i.disabled
+ changed=1
+ fi
+done
+
+for i in $(find "$TEMPLATES_DIR" -name '*.conf'); do
+ serviceconf=$(basename $i)
+ if [ -r "$MONIT_DIR"/$serviceconf.disabled ]; then
+ check_service "$MONIT_DIR"/$serviceconf.disabled
+ if [ $RET -eq 0 ]; then
+ if [ ! -r "$MONIT_DIR"/$serviceconf ]; then
+ echo "CN: Enabled $serviceconf (previously disabled)"
+ mv "$MONIT_DIR"/$serviceconf.disabled \
+ "$MONIT_DIR"/$serviceconf
+ changed=1
+ fi
+ fi
+ else
+ check_service $i
+ if [ $RET -eq 0 ]; then
+ if [ ! -r "$MONIT_DIR"/$serviceconf ]; then
+ echo "CN: Enabled $serviceconf (new service)"
+ cp -a $i "$MONIT_DIR"
+ changed=1
+ fi
fi
fi
done
+
+if [ $changed -eq 1 ]; then
+ echo "CN: Stopping/restarting monit service"
+ pkill -9 -f /usr/sbin/monit || true
+else
+ echo "CN: No new services detected, sorry"
+fi
+
+exit 0