diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2006-07-30 01:07:20 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2006-07-30 01:07:20 +0000 |
commit | 16b9b145c01f238884cf92183796d9a9208839fe (patch) | |
tree | 18f4d1972ae11a9ba5306bb24ddc71977f8e2c01 /packages/proxy_monitor.sh | |
parent | 33dff22726e0a699c123ad747c36c4ca95234af2 (diff) | |
download | pfsense-packages-16b9b145c01f238884cf92183796d9a9208839fe.tar.gz pfsense-packages-16b9b145c01f238884cf92183796d9a9208839fe.tar.bz2 pfsense-packages-16b9b145c01f238884cf92183796d9a9208839fe.zip |
Adding squid monitor that reconfigures filter if squid stops working.
Simple shell script. Small. Effective.
Diffstat (limited to 'packages/proxy_monitor.sh')
-rw-r--r-- | packages/proxy_monitor.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/proxy_monitor.sh b/packages/proxy_monitor.sh new file mode 100644 index 00000000..519a720c --- /dev/null +++ b/packages/proxy_monitor.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# Squid monitor 1.0 +# Written for pfSense's Squid Package +# by Scott Ullrich +# +# This file is released under the BSD style +# + +set -e + +LOOP_SLEEP=5 + +# Squid monitor 1.0 +while [ /bin/true ]; do + if [ ! -f /var/run/squid_alarm ]; then + NUM_PROCS=`ps awux | grep "squid -D" | grep -v "grep" | wc -l | awk '{ print $1 }'` + if [ $NUM_PROCS -lt 1 ]; then + # squid is down + echo "Squid has exited. Reconfiguring filter." | \ + logger -p daemon.info -i -t Squid_Alarm + echo "Attempting restart..." | logger -p daemon.info -i -t Squid_Alarm + /usr/local/etc/rc.d/squid.sh start + sleep 3 + echo "Reconfiguring filter..." | logger -p daemon.info -i -t Squid_Alarm + /etc/rc.filter_configure + touch /var/run/squid_alarm + fi + fi + NUM_PROCS=`ps awux | grep "squid -D" | grep -v "grep" | wc -l | awk '{ print $1 }'` + if [ $NUM_PROCS -gt 0 ]; then + if [ -f /var/run/squid_alarm ]; then + echo "Squid has resumed. Reconfiguring filter." | \ + logger -p daemon.info -i -t Squid_Alarm + /etc/rc.filter_configure + rm /var/run/squid_alarm + fi + fi + sleep $LOOP_SLEEP +done + |