Re: [squid-users] Help with running 2 instances of squid

From: Chris Wilcox <[email protected]>
Date: Sat, 18 Oct 2003 20:31:13 +0100

>Are you also starting the squid with the other configuration file?
>(squid -f [configile])

The init.d script for squid2 is pasted below:

******************Start of script***************************************

#! /bin/sh
#
# squid Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid.rc 2.20 01-Oct-2001 miquels@cistron.nl
#

NAME=squid2
DAEMON=/usr/sbin/squid
LIB=/usr/lib/squid
PIDFILE=/var/run/$NAME.pid
SQUID_ARGS="-D -sYC -f /etc/squid2.conf"

[ ! -f /etc/default/squid2 ] || . /etc/default/squid2

PATH=/bin:/usr/bin:/sbin:/usr/sbin

[ -x $DAEMON ] || exit 0

grepconf2 () {
        w=" " # space tab
        sq=/etc/$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"
}

#
# Try to increase the # of filedescriptors we can open.
#
maxfds () {
        [ -n "$SQUID_MAXFD" ] || return
        [ -f /proc/sys/fs/file-max ] || return 0
        [ $SQUID_MAXFD -le 4096 ] || SQUID_MAXFD=4096
        global_file_max=`cat /proc/sys/fs/file-max`
        minimal_file_max=$(($SQUID_MAXFD + 4096))
        if [ "$global_file_max" -lt $minimal_file_max ]
        then
                echo $minimal_file_max > /proc/sys/fs/file-max
        fi
        ulimit -n $SQUID_MAXFD
}

start () {
        cdr=`grepconf2 cache_dir /var/spool/squid/$NAME`
        case "$cdr" in
                [0-9]*)
                        echo "squid: squid2.conf contains 2.2.5 syntax - not
starting!" >&2
                        exit 1
                        ;;
        esac
        maxfds
        umask 027
        cd $cdr
        start-stop-daemon --quiet --start \
                --pidfile $PIDFILE \
                --exec $DAEMON -- $SQUID_ARGS < /dev/null
        sleep 1
}

stop () {
        PID=`cat $PIDFILE 2>/dev/null`
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
        #
        # Now we have to wait until squid has _really_ stopped.
        #
        sleep 2
        if test -n "$PID" && kill -0 $PID 2>/dev/null
        then
                echo -n "Waiting ."
                cnt=0
                while kill -0 $PID 2>/dev/null
                do
                        cnt=`expr $cnt + 1`
                        if [ $cnt -gt 60 ]
                        then
                                #
                                # Waited 120 seconds now. Fail.
                                #
                                echo -n " Failed.. "
                                break
                        fi
                        sleep 2
                        echo -n "."
                done
                [ "$1" = verbose ] && echo "done."
        else
                [ "$1" = verbose ] && echo "$NAME."
        fi
}

case "$1" in
    start)
        echo -n "Starting proxy server: "
        start
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping proxy server: "
        stop verbose
        ;;
    reload|force-reload)
        echo "Reloading $NAME configuration files"
        start-stop-daemon --stop --signal 1 \
                --pidfile $PIDFILE --quiet --exec $DAEMON
        ;;
    restart)
        echo "Restarting proxy server: "
        stop
        start
        echo "$NAME."
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME
{start|stop|reload|force-reload|restart}"
        exit 1
        ;;
esac

exit 0

***********************End of
Script************************************************

it makes no difference to the error message by adding or removing the '-f
/etc/squid2.conf' to the parameters at the top of the script.

Thanks again for further help,

Regards,

nry

>
>Chris Wilcox wrote:
>
>>Hi all,
>>
>>As far as I can tell, I have followed everything I'm supposed to have to
>>make this work. I wish to run two instances of Squid on the same machine:
>>Squid/2.4.STABLE6 on Debian Woody stable.
>>
>>I have squid.conf and squid2.conf with the relevant settings altered.
>>
>>Squid.conf listens on port 3128 on the external IP. I have not altered
>>the PID file path for this one.
>>Squid2.conf listens on port 8085 on 127.0.0.1 I have altered the PID file
>>path to be /var/run/squid2.pid I have created a different cache directory
>>etc, and specified these within the squid2.conf file, along with checkong
>>relevant permissions on these directories.
>>
>>I have then copied the squid init.d script and called this squid2. I have
>>altered squid2 to have a different name string, and altered all relevant
>>entries within this script to point to the squid2 details eg cache
>>directory etc. This squid2 script is set to use 'squid2.pid' as I've
>>specified in squid2.conf
>>
>>Yet still, when I do 'squid2 start' it always returns 'Squid is already
>>running! Process ID 213'
>>
>>I'm now lost. Am I missing something really obvious here? I've been
>>trying to get this going for a good few weeks now!
>>
>>Major thanks for any advice and suggestions!
>>
>>Regards,
>>
>>nry
>>
>>_________________________________________________________________
>>Use MSN Messenger to send music and pics to your friends
>>http://www.msn.co.uk/messenger
>>
>>
>
>

_________________________________________________________________
It's fast, it's easy and it's free. Get MSN Messenger today!
http://www.msn.co.uk/messenger
Received on Sat Oct 18 2003 - 13:31:21 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:20:32 MST