3 # Startup script for dansguardian
6 # description: A web content filtering plugin for web \
7 # proxies, developed to filter using lists of \
8 # banned phrases, MIME types, filename \
9 # extensions and PICS labelling.
10 # processname: dansguardian
11 # pidfile: /var/run/dansguardian.pid
12 # config: /etc/dansguardian/dansguardian.conf
14 CONFFILELOCATION=/etc/dansguardian/
15 BINARYLOCATION=/usr/sbin/
18 # Source function library
19 . /etc/rc.d/init.d/functions
21 # File includes changes by Thomas Jarosch
22 function wait_for_pid()
27 if [ $PID -eq 0 ] ; then
31 # give 60 secs then KILL
34 while [ -d /proc/${PID} ] && [ $COUNTDOWN -gt 0 ] ; do
36 COUNTDOWN=$[$COUNTDOWN-1]
39 if [ -d /proc/${PID} ]; then
40 COMMAND=`ps h -o command ${PID}`
41 logger "dansguardian: timeout waiting for PID ${PID}: ${COMMAND}; sending SIGKILL"
42 kill -KILL $PID >/dev/null 2>&1
49 # See how we were called.
53 # Check if the service is already running?
54 if [ ! -f /var/lock/subsys/dansguardian ]; then
55 if [ -f ${BINARYLOCATION}dansguardian ] &&
56 [ -f ${CONFFILELOCATION}dansguardian.conf ]; then
57 msg_starting dansguardian
58 run_cmd ${BINARYLOCATION}dansguardian 2>/dev/null
60 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dansguardian
63 msg_already_running dansguardian
67 if [ -f /var/lock/subsys/dansguardian ]; then
68 msg_stopping dansguardian
71 if [ -f ${PIDDIR}dansguardian.pid ] ; then
72 WAITPID=`cat ${PIDDIR}dansguardian.pid`
74 if ${BINARYLOCATION}dansguardian -q 2> /dev/null; then
75 if wait_for_pid $WAITPID ; then
80 rm -f ${PIDDIR}dansguardian.pid
81 rm -f /tmp/.dguardianipc
82 [ -d /var/lock/subsys ] && /bin/rm -f /var/lock/subsys/dansguardian
87 msg_not_running dansguardian
95 if [ -f ${BINARYLOCATION}dansguardian ]; then
96 ${BINARYLOCATION}dansguardian -s
102 msg_usage "$0 {start|stop|restart|force-reload|status}"