diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-04-30 18:29:19 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-04-30 18:29:19 -0300 |
commit | 8596af32d3bf099dce8df344c90b8a525598f00f (patch) | |
tree | 63bc740009c1ea228dd1cc4649fd04fc00d549c6 /config/unbound/unbound_monitor.sh | |
parent | 20765c96dc454d40d452fd4dbeb91c2ec5c53d12 (diff) | |
download | pfsense-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-x | config/unbound/unbound_monitor.sh | 27 |
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 |