#!/bin/sh DAEMON=/usr/sbin/squid NAME=squid DESC="Squid HTTP proxy" PIDFILE=/var/run/squid.pid # -D option is obsolete in squid version 3, so avoid warning if $DAEMON -v | grep -q Version\ 3; then SQUID_ARGS="-sY" else SQUID_ARGS="-D -sY" fi test -f $DAEMON || exit 0 grepconf() { w=" " # space tab sq=/etc/$NAME/$NAME.conf # sed is cool. res=`sed -ne ' s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p; t end; d; :end q' < $sq` [ -n "$res" ] || res=$2 echo "$res" } start() { owner=nobody cdr=`grepconf cache_dir /var/spool/$NAME` if [ ! -d "$cdr/00" ]; then mkdir -p $cdr chown $owner $cdr $DAEMON -z fi ldr="/var/log/$NAME" if [ ! -d "$ldr" ]; then mkdir -p $ldr chown $owner $ldr fi start-stop-daemon -S -p $PIDFILE -x $DAEMON -- $SQUID_ARGS } stop() { EX=0 CNT=1 while [ $EX -eq 0 -a $CNT -lt 15 ]; do echo -n . sleep 1 start-stop-daemon -K -p $PIDFILE 1>/dev/null 2>&1 EX=$? CNT=`expr $CNT + 1` done if [ $CNT -eq 15 ]; then echo "failed." else echo "done." rm -f $PIDFILE fi } case "$1" in start) echo -n "Starting $DESC: $NAME... " start echo "done." ;; stop) echo -n "Stopping $DESC: $NAME" stop ;; restart) echo "Restarting $DESC: $NAME... " stop sleep 1 start echo "done." ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0