#! /bin/sh
#
# chkconfig: - 90 25
# description: Squid service server
#
# processname: squid
# pidfile: /usr/local/squid/var/logs/squid.pid
# config: /usr/local/squid/etc/squid.conf
PROGNAME=squid
SQUID=/usr/local/squid/sbin/squid
PIDFILE=/usr/local/squid/var/logs/squid.pid
SQUID_ARGS="-D"
SQUID_SHUTDOWN_TIMEOUT=100

RETVAL=0

case "$1" in
        start)
                echo -n "Starting $PROGNAME: "
                $SQUID $SQUID_ARGS > /dev/null 2>&1
                RETVAL=$?
                if [ $RETVAL -eq 0 ]
                then
                        echo "OK"
                else
                        echo "NG"
                fi
                ;;
        stop)
                echo -n "Stopping $PROGNAME: "
                $SQUID -k check > /dev/null 2>&1
                RETVAL=$?
                if [ $RETVAL -eq 0 ]
                then
                        $SQUID -k shutdown  > /dev/null 2>&1
                        timeout=0
                        SHUTDOWN_RETVAL=1
                        while [ $timeout -lt $SQUID_SHUTDOWN_TIMEOUT ]
                        do
                                $SQUID -k check > /dev/null 2>&1
                                RETVAL=$?
                                if [ $RETVAL -eq 0 ]
                                then
                                        sleep 2
                                        echo -n "."
                                        timeout=`expr $timeout + 2`
                                else
                                        echo "OK"
                                        SHUTDOWN_RETVAL=0
                                        RETVAL=0
                                        break
                                fi
                        done
                        if [ $SHUTDOWN_RETVAL -ne 0 ]
                        then
                                RETVAL=1
                                echo "NG"
                        fi
                else
                        echo "NG"
                fi
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        reload)
                echo -n "Reloading $PROGNAME: "
                $SQUID -k reconfigure > /dev/null 2>&1
                RETVAL=$?
                if [ $RETVAL -eq 0 ]
                then
                        echo "OK"
                else
                        echo "NG"
                fi
                ;;
        status)
                $SQUID -k check > /dev/null 2>&1
                if [ $? -eq 0 ]
                then
                        echo "$PROGNAME is running"
                else
                        echo "$PROGNAME is stopped"
                fi
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|reload|status}"
                RETVAL=1
esac

exit $RETVAL
