#!/bin/bash # Squid Internet Object Cache startup # AUTHOR: Markus Gyger # This is squid's startup file /sbin/init.d/squid or /etc/init.d/squid PATH=/usr/local/squid/sbin:/usr/sbin:/usr/bin:/sbin:/bin export PATH config() { # SGI IRIX 6.2 if [ -f /sbin/chkconfig ] then if /sbin/chkconfig squid then if [ -f /var/config/squid.options ] then . /var/config/squid.options fi SQUID=1 else SQUID=0 fi # Digital UNIX elif [ -f /usr/sbin/rcmgr ] then SQUID=`/usr/sbin/rcmgr get SQUID 0` SQUID_OPTIONS=`/usr/sbin/rcmgr get SQUID_OPTIONS "-s"` SQUID_RESPAWN=`/usr/sbin/rcmgr get SQUID_RESPAWN 1` # HP-UX 10 / Linux elif [ -f /etc/rc.config ] then . /etc/rc.config # SUN Solaris 2 else SQUID=1 SQUID_OPTIONS="-s" SQUID_RESPAWN=1 fi [ 1 = "${SQUID-}" ] } respawn() { trap "" 1 fails=0 while [ $fails -le 5 ] do start=`date +%d%H%M%S` if "$@" then logger -t "$1" -p local4.notice \ "respawn[$$]: Exiting due to shutdown" return 0 fi stop=`date +%d%H%M%S` time=`expr $stop - $start` [ "$time" -gt 10 ] && fails=0 fails=`expr $fails + 1` done logger -t "$1" -p local4.alert \ "respawn[$$]: Exiting due to repeated, frequent failures" return 1 } case $* in start_msg) echo "Start Squid Internet Object Cache" ;; stop_msg) echo "Stopping Squid Internet Object Cache" ;; start) config || exit 2 # Squid not enabled if whence=`type squid 2>&1` then trap "" 1 if [ 0 = "${SQUID_RESPAWN-}" ] then squid ${SQUID_OPTIONS-} & else respawn squid ${SQUID_OPTIONS-} & fi else echo "ERROR: $whence" >&2 exit 1 fi ;; stop) config || exit 2 # Squid not enabled squid ${SQUID_OPTIONS-} -k shutdown || exit 1 ;; reconf*|rotate|int*|debug|check|kill) config squid ${SQUID_OPTIONS-} -k "$1" ;; *) echo "usage: $0 {start|stop|reconfigure|rotate|interrupt|debug|check|kill}" >&2 echo " start start squid" >&2 echo " stop clean shutdown" >&2 echo " reconfigure reread configuration files" >&2 echo " rotate rotate log files" >&2 echo " interrupt quick clean shutdown " >&2 echo " debug toggle debug logging" >&2 echo " check check for running squid" >&2 echo " kill terminate squid by brute force" >&2 exit 1 ;; esac [ $? -eq 0 ] # only 0 and 1 exit values allowed exit