1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
#!/bin/sh
#
# Startup script for e2guardian
#
# chkconfig: 35 92 8
# description: A web content filtering plugin for web \
# proxies, developed to filter using lists of \
# banned phrases, MIME types, filename \
# extensions and PICS labelling.
# processname: e2guardian
# pidfile: @E2PIDDIR@/e2guardian.pid
# config: @E2CONFDIR@/e2guardian.conf
### BEGIN INIT INFO
# Provides: e2guardian
# Required-Start: squid
# Should-Start:
# Required-Stop: squid
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: E2guardian web content filter
# Description: E2guardian web content filter
### END INIT INFO
# File includes changes by Thomas Jarosch
function wait_for_pid()
{
local PID=$1
local RET=0
if [ $PID -eq 0 ] ; then
return $RET
fi
# give 60 secs then KILL
local COUNTDOWN=60
while [ -d /proc/${PID} ] && [ $COUNTDOWN -gt 0 ] ; do
sleep 1
COUNTDOWN=$[$COUNTDOWN-1]
done
if [ -d /proc/${PID} ]; then
COMMAND=`ps h -o command ${PID}`
logger "e2guardian: timeout waiting for PID ${PID}: ${COMMAND}; sending SIGKILL"
kill -KILL $PID >/dev/null 2>&1
RET=1
fi
return $RET
}
# See how we were called.
case "$1" in
start)
if [ -f @E2BINDIR@/e2guardian ] &&
[ -f @E2CONFDIR@/e2guardian.conf ]; then
echo -n "Starting e2guardian: "
if @E2BINDIR@/e2guardian 2> /dev/null; then
echo -e "\\033[60G\c"
echo -e "[ \\033[1;32m\c"
echo -e "OK\c"
echo -e "\\033[0;39m\c"
echo " ]"
[ -d /var/lock/subsys ] && touch /var/lock/subsys/e2guardian
else
echo -e "\\033[60G\c"
echo -e "[ \\033[1;31m\c"
echo -e "FAILED\c"
echo -e "\\033[0;39m\c"
echo " ]"
fi
fi
;;
stop)
echo -n "Shutting down e2guardian: "
WAITPID=0
if [ -f @E2PIDDIR@/e2guardian.pid ] ; then
WAITPID=`cat @E2PIDDIR@/e2guardian.pid`
fi
if @E2BINDIR@/e2guardian -q 2> /dev/null; then
if wait_for_pid $WAITPID ; then
echo -e "\\033[60G\c"
echo -e "[ \\033[1;32m\c"
echo -e "OK\c"
echo -e "\\033[0;39m\c"
echo " ]"
else
echo -e "\\033[60G\c"
echo -e "[ \\033[1;31m\c"
echo -e "FAILED\c"
echo -e "\\033[0;39m\c"
echo " ]"
fi
/bin/rm -f @E2PIDDIR@/e2guardian.pid
/bin/rm -f /tmp/.dguardianipc
[ -d /var/lock/subsys ] && /bin/rm -f /var/lock/subsys/e2guardian
else
echo -e "\\033[60G\c"
echo -e "[ \\033[1;31m\c"
echo -e "FAILED\c"
echo -e "\\033[0;39m\c"
echo " ]"
fi
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f @E2BINDIR@/e2guardian ]; then
@E2BINDIR@/e2guardian -s
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}" >&2
;;
esac
exit 0
|