3 # Copyright (C) 2007 Dinko Korunic, CARNET, Grupa za izradu paketa
5 # This program is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by the
7 # Free Software Foundation; either version 2 of the License, or (at your
8 # option) any later version.
10 MONIT_DIR=/etc/monit/conf.d
11 TEMPLATES_DIR=/usr/share/monit-cn
18 if [ ! -r "$filename" ]; then
23 scriptpid='BEGIN { RS = "[ \t\n]+" }
26 if (line[j] == "pidfile")
28 pidfiles=$(awk "$scriptpid" < "$filename" | sed -e 's/"//g')
29 check_pidfile $pidfiles
31 if [ $RET -eq 1 ]; then
35 scriptinit='BEGIN { RS = "[ \t\n]+" }
38 if (((line[j] == "start") || (line[j] == "stop")) && (line[j + 1] == "program") && (line[j + 2] == "="))
40 initscripts=$(awk "$scriptinit" < "$filename" | sed -e 's/"//g')
41 check_initscript $initscripts
52 if [ $RET -eq 1 ]; then
69 if [ ! -x "$1" ]; then
83 if ! kill -0 "$1" >/dev/null 2>&1; then
96 serviceconf=$(basename $i)
98 if [ ! -r "$1" ]; then
103 if [ ! -r "${TEMPLATES_DIR}/${serviceconf}" ]; then
108 if ! grep -q "^#.*monit-cn template" "$filename"; then
113 if ! cmp -s "$filename" "${TEMPLATES_DIR}/${serviceconf}"; then
122 #####################################################################
125 if [ ! -d "$MONIT_DIR" ]; then
126 mkdir -p "$MONIT_DIR"
129 for i in $(find "$MONIT_DIR" -name '*.conf'); do
131 if [ ! $RET -eq 0 ]; then
132 serviceconf=$(basename $i)
133 echo "CN: Restored default $serviceconf template"
134 cp -a "${TEMPLATES_DIR}/${serviceconf}" "$MONIT_DIR"
139 for i in $(find "$MONIT_DIR" -name '*.conf'); do
141 if [ ! $RET -eq 0 ]; then
142 serviceconf=$(basename $i)
143 echo "CN: Disabled $serviceconf"
149 for i in $(find "$TEMPLATES_DIR" -name '*.conf'); do
150 serviceconf=$(basename $i)
151 if [ -r "${MONIT_DIR}/${serviceconf}.disabled" ]; then
152 check_service "${MONIT_DIR}/${serviceconf}.disabled"
153 if [ $RET -eq 0 ]; then
154 if [ ! -r "${MONIT_DIR}/${serviceconf}" ]; then
155 echo "CN: Enabled $serviceconf (previously disabled)"
156 mv "${MONIT_DIR}/${serviceconf}.disabled" \
157 "${MONIT_DIR}/${serviceconf}"
163 if [ $RET -eq 0 ]; then
164 if [ ! -r "${MONIT_DIR}/${serviceconf}" ]; then
165 echo "CN: Enabled $serviceconf (new service)"
166 cp -a $i "${MONIT_DIR}"
173 if [ $changed -eq 1 ]; then
174 echo "CN: Stopping/restarting monit service"
175 #pkill -9 -f /usr/bin/monit || true
176 service monit restart
178 echo "CN: No new services detected, sorry"