Re: [squid-users] Squid exiting on its own at sys startup

From: Mike <mcsnv96_at_afo.net>
Date: Thu, 26 Jun 2014 12:13:39 -0500

OS is CentOS based Scientific Linux 6.5. Squid is version 3.4.6 (updated
today) but was happening as well with 3.4.5.

This happens only after a reboot, so there has to be an issue in the
/etc/init.d/squid startup script causing this. Something on initial
startup is causing it to start and then immediately exit with the status
0. Subsequent startup attempts by it causes the ssl_crtd helpers to
crash, so I want to prevent that initial automated "exit with status 0".
A manual "service squid start" allows it to start without a problem.
We even tried a delayed secondary startup in /etc/rc.local pointing to a
basic (chmod +x) script that says
#!/bin/bash
sleep 60
service squid start

but that doesn't help, the exact same thing happens when it tries to
start, so I suspect something in the init.d script.

Permissions are all set, selinux is disabled.

 From the var/log/messages

Jun 26 11:41:05 cogicm01 squid[1544]: Squid Parent: will start 1 kids
Jun 26 11:41:05 cogicm01 squid[1544]: Squid Parent: (squid-1) process
1547 started
Jun 26 11:41:05 cogicm01 squid[1544]: Squid Parent: (squid-1) process
1547 exited with status 0
Jun 26 11:41:10 cogicm01 squid[1561]: Squid Parent: will start 1 kids
Jun 26 11:41:10 cogicm01 squid[1561]: Squid Parent: (squid-1) process
1563 started
Jun 26 11:41:10 cogicm01 squid[1561]: Squid Parent: (squid-1) process
1563 exited with status 0
Jun 26 11:41:15 cogicm01 squid[1566]: Squid Parent: will start 1 kids
Jun 26 11:41:15 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1568 started
Jun 26 11:41:15 cogicm01 (squid-1): The ssl_crtd helpers are crashing
too rapidly, need help!
Jun 26 11:41:16 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1568 exited with status 1
Jun 26 11:41:19 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1577 started
Jun 26 11:41:19 cogicm01 (squid-1): The ssl_crtd helpers are crashing
too rapidly, need help!
Jun 26 11:41:19 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1577 exited with status 1
Jun 26 11:41:22 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1610 started
Jun 26 11:41:22 cogicm01 (squid-1): The ssl_crtd helpers are crashing
too rapidly, need help!
Jun 26 11:41:22 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1610 exited with status 1
Jun 26 11:41:25 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1617 started
Jun 26 11:41:25 cogicm01 (squid-1): The ssl_crtd helpers are crashing
too rapidly, need help!
Jun 26 11:41:25 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1617 exited with status 1
Jun 26 11:41:28 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1624 started
Jun 26 11:41:29 cogicm01 (squid-1): The ssl_crtd helpers are crashing
too rapidly, need help!
Jun 26 11:41:29 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1624 exited with status 1
Jun 26 11:41:29 cogicm01 squid[1566]: Squid Parent: (squid-1) process
1624 will not be restarted due to repeated, frequent failures
Jun 26 11:41:29 cogicm01 squid[1566]: Exiting due to repeated, frequent
failures

Based on my last email, I adjusted things since it kept trying to remove
a pid folder that is there but empty, whereas the pid file itself is
within the normal /var/run/ folder, not the /var/run/squid/ folder. This
means on shutdown or service restart, it was not removing the old pid
file. So I adjusted it on stop or restart to remove the .pid file which
works. But the above issue on system startup remains.

The init script:

#!/bin/bash
# chkconfig: - 90 25
# pidfile: /var/run/squid.pid
# config: /etc/squid/squid.conf
#
### BEGIN INIT INFO
# Provides: squid
# Short-Description: starting and stopping Squid Internet Object Cache
# 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.
### END INIT INFO

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

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

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

if [ -f /etc/sysconfig/squid ]; then
         . /etc/sysconfig/squid
fi

# don't raise an error if the config file is incomplete
# set defaults instead:
SQUID="/usr/sbin/squid" && SQUID=squid
SQUID_OPTS=${SQUID_OPTS:-""}
SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-30}
SQUID_CONF=${SQUID_CONF:-"/etc/squid/squid.conf"}
SQUID_PIDFILE_DIR="/var/run/squid"
SQUID_USER="squid"
SQUID_DIR="squid"

# determine the name of the squid binary
[ -f /usr/sbin/squid ] && SQUID=squid

prog="$SQUID"

# determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' $SQUID_CONF | \
         grep cache_dir | awk '{ print $3 }'`

RETVAL=0

probe() {
         # Check that networking is up.
         [ ${NETWORKING} = "no" ] && exit 1

         [ `id -u` -ne 0 ] && exit 4

         # check if the squid conf file is present
         [ -f $SQUID_CONF ] || exit 6
}

start() {
         # Check if $SQUID_PIDFILE_DIR exists and if not, lets create it
and give squid permissions.
# if [ ! -d $SQUID_PIDFILE_DIR ] ; then mkdir $SQUID_PIDFILE_DIR ;
chown -R $SQUID_USER.$SQUID_DIR $SQUID_PIDFILE_DIR; fi
# probe

         parse=`$SQUID -k parse -f $SQUID_CONF 2>&1`
         RETVAL=$?
         if [ $RETVAL -ne 0 ]; then
                 echo -n $"Starting $prog: "
                 echo_failure
                 echo
                 echo "$parse"
                 return 1
         fi
# for adir in $CACHE_SWAP; do
# if [ ! -d $adir/00 ]; then
# echo -n "init_cache_dir $adir... "
# $SQUID -z -F -f $SQUID_CONF >>
/var/log/squid/squid.out 2>&1
# fi
# done
         echo -n $"Starting $prog: "
         sleep 5
         squid -z
         sleep 5
         $SQUID >> /var/log/squid/squid.out 2>&1
         RETVAL=$?
         if [ $RETVAL -eq 0 ]; then
                 timeout=5;
                 while : ; do
                         [ ! -f /var/run/squid.pid ] || break
                         if [ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]; then
                                 RETVAL=1
                                 break
                         fi
                         sleep 5 && echo -n "."
                         timeout=$((timeout+1))
                 done
         fi
         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID
         [ $RETVAL -eq 0 ] && echo_success
         [ $RETVAL -ne 0 ] && echo_failure
         echo
         return $RETVAL
}

stop() {
         echo -n $"Stopping $prog: "
         $SQUID -k check -f $SQUID_CONF >> /var/log/squid/squid.out 2>&1
         RETVAL=$?
         if [ $RETVAL -eq 0 ] ; then
                 $SQUID -k shutdown -f $SQUID_CONF &
                 rm -f /var/lock/subsys/$SQUID
                 timeout=0
                 while : ; do
                         [ -f /var/run/squid.pid ] || break
if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
                                 echo
                                 return 1
                         fi
                         sleep 2 && echo -n "."
                         timeout=$((timeout+2))
                 done
                 echo_success
                 echo
         else
                 echo_failure
                 if [ ! -e /var/lock/subsys/$SQUID ]; then
                         RETVAL=0
                 fi
                 echo
         fi
         rm -rf /var/run/squid.pid
         return $RETVAL
}

reload() {
         $SQUID $SQUID_OPTS -k reconfigure -f $SQUID_CONF
}

restart() {
         stop
         rm -rf /var/run/squid.pid
         start
}

condrestart() {
         [ -e /var/lock/subsys/squid ] && restart || :
}

rhstatus() {
         status $SQUID && $SQUID -k check -f $SQUID_CONF
}

case "$1" in
start)
         start
         ;;

stop)
         stop
         ;;

reload|force-reload)
         reload
         ;;

restart)
         restart
         ;;

condrestart|try-restart)
         condrestart
         ;;
status)
         rhstatus
         ;;

probe)
         probe
         ;;

*)
         echo $"Usage: $0
{start|stop|status|reload|force-reload|restart|try-restart|probe}"
         exit 2
esac

exit $?
Received on Thu Jun 26 2014 - 17:13:42 MDT

This archive was generated by hypermail 2.2.0 : Fri Jun 27 2014 - 12:00:05 MDT