#!/bin/bash # # squid -- start/stop the Squid Internet Object Cache # # chkconfig: 345 90 25 # description: Squid HTTP Proxy # pidfile: /var/run/squid.pid # config: /etc/squid/squid.conf . /etc/sysconfig/rc # Source function library. [ -r "$rc_functions" ] && . $rc_functions NAME=squid DAEMON=/usr/sbin/$NAME DAEMONPID=/var/run/$NAME.pid DAEMONCONF=/etc/squid/squid.conf OPTIONS="-s" [ -x $DAEMON ] || exit 0 # Source networking configuration. [ -r /etc/sysconfig/network ] && . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "yes" ] || exit 0 [ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME [ "$SQUID_OPTIONS" ] && OPTIONS="$SQUID_OPTIONS" # check if the squid conf file is present [ -r $DAEMONCONF ] || exit 0 SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20} SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100} # determine which one is the cache_swap directory CACHE_SWAP=`sed -e 's/#.*//g' $DAEMONCONF | \ grep cache_dir | awk '{ print $3 }'` [ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid case "$1" in start) for d in $CACHE_SWAP; do if [ -d $d -a ! -d $d/00 ]; then echo -n "Creating swap directories $d... " $DAEMON -z -F >> /var/log/squid/squid.out 2>&1 evaluate_retval; echo fi done echo -n $"Starting $NAME: " $DAEMON $OPTIONS >> /var/log/squid/squid.out 2>&1 #daemon --pidfile=$DAEMONPID $DAEMON $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME [ $RETVAL -eq 0 ] && echo_success || echo_failure echo ;; stop) echo -n $"Stopping $NAME: " $DAEMON -k check &> /dev/null RETVAL=$? if [ $RETVAL -eq 0 ] ; then $DAEMON -k shutdown & rm -f /var/lock/subsys/$NAME timeout=0 echo -n $" Waiting" while $DAEMON -k check &> /dev/null; do if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then echo return 1 fi sleep 5 && echo -n "." let timeout+=5 done echo_success echo else echo_success echo fi ;; reload) echo -n "Reloading $NAME: " $DAEMON $OPTIONS -k reconfigure evaluate_retval; echo ;; restart) $0 stop sleep 1 $0 start ;; condrestart) [ -e /var/lock/subsys/$NAME ] && $0 restart || : ;; status) statusproc $DAEMON && $DAEMON -k check ;; *) echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}" exit 1 ;; esac exit $?