if [ ! -f /var/lock/subsys/squid ]; then
check_cache_dirs
msg_starting Squid
- daemon squid $SQUID_OPTS
+ daemon /usr/sbin/squid $SQUID_OPTS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/squid
else
if [ -f /var/lock/subsys/squid ]; then
# Stop daemons.
msg_stopping Squid
- if [ -f /var/run/squid.pid ]; then
- PID=$(filter_chroot $(cat /var/run/squid.pid))
- if [ -z "$PID" ]; then
- PID=0
- fi
- else
- PID=0
- fi
killproc squid
- RETVAL=$?
- if [ $PID != 0 ]; then
+
+ if [ -f /var/run/squid.pid ]; then
show "Waiting for Squid to stop"
busy
+
timeout=0
- while ps -U squid -o user | grep -q ^squid
- do
+ while : ; do
+ [ ! -f /var/run/squid.pid ] || break
if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
- break
+ RETVAL=1
+ break
fi
- sleep 1
- timeout=$((timeout + 1))
+ sleep 1 && echo -n "."
+ timeout=$((timeout+1))
done
ok
fi
+
rm -f /var/lock/subsys/squid >/dev/null 2>&1
else
msg_not_running Squid
}
# check that squid config is ok
-# NOTE: needs running squid
configtest() {
show "Checking squid config syntax"
- squid -k check >> /var/log/squid/squid.out 2>&1
+ squid -k parse >> /var/log/squid/squid.out 2>&1
RETVAL=$?
[ $RETVAL = 0 ] && ok || fail
}
start
}
+condrestart() {
+ # if service is up, do configtest
+ if [ -f /var/lock/subsys/squid ]; then
+ configtest
+ if [ $RETVAL != 0 ]; then
+ exit 1
+ fi
+ stop
+ start
+ else
+ msg_not_running Squid
+ RETVAL=0
+ fi
+}
+
RETVAL=0
# See how we were called.
case "$1" in
stop)
stop
;;
- restart|force-reload)
+ restart)
restart
;;
- reload)
+ try-restart)
+ condrestart
+ ;;
+ reload|force-reload)
reload
;;
status)
check_cache_dirs
;;
*)
- msg_usage "$0 {start|stop|init|restart|reload|force-reload|status}"
+ msg_usage "$0 {start|stop|init|restart|try-restart|reload|force-reload|status}"
exit 3
esac