aboutsummaryrefslogtreecommitdiffstats
path: root/config/unbound/unbound_monitor.sh
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2013-04-30 18:29:19 -0300
committerRenato Botelho <garga@FreeBSD.org>2013-04-30 18:29:19 -0300
commit8596af32d3bf099dce8df344c90b8a525598f00f (patch)
tree63bc740009c1ea228dd1cc4649fd04fc00d549c6 /config/unbound/unbound_monitor.sh
parent20765c96dc454d40d452fd4dbeb91c2ec5c53d12 (diff)
downloadpfsense-packages-8596af32d3bf099dce8df344c90b8a525598f00f.tar.gz
pfsense-packages-8596af32d3bf099dce8df344c90b8a525598f00f.tar.bz2
pfsense-packages-8596af32d3bf099dce8df344c90b8a525598f00f.zip
Fix unbound_monitor.sh (Ticket #2817)
. Use a PID file to keep track if it's running or not . Move it to /usr/local/bin, it doesn't need to be started by rc.start_packages since it's already called by unbound.inc . Define PATH and remove complete path for all binaries . Remove unbound initscript symlink created when it's installed by a PBI package . Bump unbound to 1.4.20_5
Diffstat (limited to 'config/unbound/unbound_monitor.sh')
-rwxr-xr-xconfig/unbound/unbound_monitor.sh27
1 files changed, 21 insertions, 6 deletions
diff --git a/config/unbound/unbound_monitor.sh b/config/unbound/unbound_monitor.sh
index 042866be..c277bbaa 100755
--- a/config/unbound/unbound_monitor.sh
+++ b/config/unbound/unbound_monitor.sh
@@ -27,33 +27,48 @@
# POSSIBILITY OF SUCH DAMAGE.
#
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
+
set -e
LOOP_SLEEP=5
+PIDFILE=/var/run/unbound_monitor.pid
if [ -f /var/run/unbound_alarm ]; then
rm /var/run/unbound_alarm
fi
+PID=""
+if [ -f "${PIDFILE}" ]; then
+ PID=`head -n 1 ${PIDFILE}`
+fi
if [ "$1" = "stop" ]; then
- pkill -f unbound_monitor.sh
+ if [ -n "${PID}" ] && ps -p ${PID} | grep -q unbound_monitor.sh; then
+ kill ${PID}
+ else
+ pkill -f unbound_monitor.sh
+ fi
exit 0
fi
-PROCS=`/bin/pgrep -f unbound_monitor.sh | wc -l | awk '{print $1}'`
-
-if [ ${PROCS} -gt 1 ]; then
+if [ -n "${PID}" ] && ps -p ${PID} | grep -q unbound_monitor.sh; then
echo "There are another unbound monitor proccess running"
exit 0
fi
+echo $$ > ${PIDFILE}
+
# Sleep 5 seconds on startup not to mangle with existing boot scripts.
sleep 5
while true; do
+ if [ ! -f "${PIDFILE}" ]; then
+ echo $$ > ${PIDFILE}
+ fi
+
if [ ! -f /var/run/unbound_alarm ]; then
- NUM_PROCS=`/bin/pgrep unbound | wc -l | awk '{print $1}'`
+ NUM_PROCS=`pgrep unbound | wc -l | awk '{print $1}'`
if [ $NUM_PROCS -lt 1 ]; then
# Unbound is not running
echo "Unbound has exited." | logger -p daemon.info -i -t Unbound_Alarm
@@ -63,7 +78,7 @@ while true; do
touch /var/run/unbound_alarm
fi
fi
- NUM_PROCS=`/bin/pgrep unbound | wc -l | awk '{print $1}'`
+ NUM_PROCS=`pgrep unbound | wc -l | awk '{print $1}'`
if [ $NUM_PROCS -gt 0 ]; then
if [ -f /var/run/unbound_alarm ]; then
echo "Unbound has resumed." | logger -p daemon.info -i -t Unbound_Alarm