File dansguardian.conf-redhat of Package dansguardian

#!/bin/sh
#
# Startup script for dansguardian
#
# 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: dansguardian
# pidfile: /var/run/dansguardian.pid
# config: /etc/dansguardian/dansguardian.conf

### BEGIN INIT INFO
# Provides:     dansguardian
# Required-Start:       squid
# Should-Start:
# Required-Stop:        squid
# Should-Stop:
# Default-Start:        3 5
# Default-Stop: 0 1 2 6
# Short-Description:    Dansguardian web content filter
# Description:  Dansguardian web content filter
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

prog="dansguardian"
DG_BINARY="/usr/sbin/dansguardian"

# 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 "dansguardian: timeout waiting for PID ${PID}: ${COMMAND}; sending SIGKILL"
        kill -KILL $PID >/dev/null 2>&1
        RET=1
    fi
    
    return $RET
}

start() {
    if [ ! -f $DG_BINARY ]; then
        echo "Dansguardian binary $DG_BINARY is missing" 1>&2
        exit 5
    fi
    if [ ! -f /etc/dansguardian/dansguardian.conf ]; then
        echo "Dansguardian configuration file /etc/dansguardian/dansguardian.conf is missing" 1>&2
        exit 6
    fi
    echo -n "Starting $prog: "
    if $DG_BINARY 2> /dev/null; then
        echo_success
        [ -d /var/lock/subsys ] && touch /var/lock/subsys/dansguardian
    else
        echo_failure
    fi
    echo
}

stop() {

    echo -n "Shutting down $prog: "
    WAITPID=0
    if [ -f /var/run/dansguardian.pid ] ; then
        WAITPID=`cat /var/run/dansguardian.pid`
    fi
    if $DB_BINARY -q 2> /dev/null; then
        if wait_for_pid $WAITPID ; then
            echo_success
            echo
        else
            echo_failure
            echo
        fi
        /bin/rm -f /var/run/dansguardian.pid
        /bin/rm -f /tmp/.dguardianipc
        [ -d /var/lock/subsys ] && /bin/rm -f /var/lock/subsys/dansguardian
    else
        echo_failure
        echo
    fi
}

reload() {
    killprog -HUP $DG_BINARY
}

restart() {
    stop
    start
}

condrestart() {
    [ -e /var/lock/subsys/dansguardian ] && restart || :
}

rhstatus() {
    status $DG_BINARY && $DG_BINARY -s
}

probe() {
    return 0
}

case "$1" in
start)
    start
    ;;

stop)
    stop
    ;;

reload)
    reload
    ;;

restart)
    restart
    ;;

condrestart)
    condrestart
    ;;

status)
    rhstatus
    ;;

probe)
    exit 0
    ;;

*)
    echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
    exit 2
esac

exit $?
openSUSE Build Service is sponsored by