#!/bin/sh # Start/stop/restart/reload the Squid Internet Object Cache (squid) # Written for Slackware Linux by Erik Jan Tromp squid_start() { # Create cache directory hierarchy if needed ALL_DIRS=$(awk '/^cache_dir/ {print $3}' /etc/squid/squid.conf) [ -z "$ALL_DIRS" ] && ALL_DIRS=/var/cache/squid for CACHE_DIR in $ALL_DIRS ; do if [ -x /usr/sbin/squid -a ! -d $CACHE_DIR/00 ] ; then /usr/sbin/squid -z break fi done if [ -x /usr/sbin/squid ]; then echo "Starting Squid: /usr/sbin/squid -DF" /usr/sbin/squid -DF fi } squid_stop() { echo -n "Shutting down Squid: " /usr/sbin/squid -k shutdown 2> /dev/null COUNTDOWN=30 while /usr/sbin/squid -k check 2> /dev/null ; do sleep 1 echo -n . COUNTDOWN=$[ $COUNTDOWN - 1 ] if [ $COUNTDOWN -le 0 ] ; then /usr/sbin/squid -k interrupt 2> /dev/null sleep 1 break fi done echo } squid_restart() { squid_stop sleep 1 squid_start } squid_reload() { /usr/sbin/squid -k reconfigure 2> /dev/null } case "$1" in 'start') squid_start ;; 'stop') squid_stop ;; 'restart') squid_restart ;; 'reload') squid_reload ;; *) echo "usage: $0 start|stop|restart|reload" esac