Configure the /etc/rc.d/init.d/squid script file -/all configurations

Securing and Optimizing Linux: RedHat Edition -A Hands on Guide
Prev | Chapter 28. Software -Server/Proxy Network | Next

# 28.8. Configure the `/etc/rc.d/init.d/squid` script file -/all configurations

Configure your `/etc/rc.d/init.d/squid` script file to start and stop the Squid Internet Object Cache. This script has been modified to setup swap cache for Squid in `/cache` instead of `/var/spool/squid`. Create the `squid` script file, touch `/etc/rc.d/init.d/squid` and add:

                   #!/bin/bash
                   # squid		This shell script takes care of starting and stopping
                   #		Squid Internet Object Cache
                   #
                   # chkconfig: - 90 25
                   # description: Squid - Internet Object Cache. Internet object caching is \
                   # 	a way to store requested Internet objects (i.e., data available \
                   # 	via the HTTP, FTP, and gopher protocols) on a system closer to the \
                   #	requesting site than to the source. Web browsers can then use the \
                   #	local Squid cache as a proxy HTTP server, reducing access time as \
                   #	well as bandwidth consumption.
                   # pidfile: /var/run/squid.pid
                   # config: /etc/squid/squid.conf

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

                   # Source function library.
                   . /etc/rc.d/init.d/functions

                   # Source networking configuration.
                   . /etc/sysconfig/network

                   # Check that networking is up.
                   [ ${NETWORKING} = "no" ] && exit 0

                   # check if the squid conf file is present
                   [ -f /etc/squid/squid.conf ] || exit 0

                   # determine the name of the squid binary
                   [ -f /usr/sbin/squid ] && SQUID=squid
                   [ -z "$SQUID" ] && exit 0

                   # determine which one is the cache_swap directory
                   CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid.conf | \
                   grep cache_dir | sed -e 's/cache_dir//' | \
                   cut -d ' ' -f 2`
                   [ -z "$CACHE_SWAP" ] && CACHE_SWAP=/cache

                   # default squid options
                   # -D disables initial dns checks. If you most likely will not to have an
                   #    internet connection when you start squid, uncomment this
                   #SQUID_OPTS="-D"

                   RETVAL=0
                   case "$1" in
                   start)
                   echo -n "Starting $SQUID: "
                   for adir in $CACHE_SWAP; do
                   if [ ! -d $adir/00 ]; then
                   echo -n "init_cache_dir $adir... "
                   $SQUID -z -F 2>/dev/null
                   fi
                   done
                   $SQUID $SQUID_OPTS &
                   RETVAL=$?
                   echo $SQUID
                   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID
                   ;;

                   stop)
                   echo -n "Stopping $SQUID: "
                   $SQUID -k shutdown &
                   RETVAL=$?
                   if [ $RETVAL -eq 0 ] ; then
                   rm -f /var/lock/subsys/$SQUID
                   while : ; do
                   [ -f /var/run/squid.pid ] || break
                   sleep 2 && echo -n "."
                   done
                   echo "done"
                   else
                   echo
                   fi
                   ;;

                   reload)
                   $SQUID $SQUID_OPTS -k reconfigure
                   exit $?
                   ;;

                   restart)
                   $0 stop
                   $0 start
                   ;;

                   status)
                   status $SQUID
                   $SQUID -k check
                   exit $?
                   ;;

                   probe)
                   exit 0;
                   ;;

                   *)
                   echo "Usage: $0 {start|stop|status|reload|restart}"
                   exit 1
                   esac

                   exit $RETVAL

Now, make this script executable and change its default permissions:

                     [root@deep /]# chmod 700 /etc/rc.d/init.d/squid

Create the symbolic rc.d links for Squid with the command:

                     [root@deep /]# chkconfig --add squid

By default the squid script will not automatically start the proxy server on Red Hat Linux when you reboot the server. You can change it's default by executing the following command:

                     [root@deep /]# chkconfig --level 345 squid on

Start your new Squid Proxy Server manually with the following command:

                     [root@deep /]# /etc/rc.d/init.d/squid start

                     Starting squid: init_cache_dir ufs... squid

Prev | Home | Next
Configure of the `/etc/squid/squid.conf` file -/proxy-caching mode | Up | Configure the `/etc/logrotate.d/squid` file