aboutsummaryrefslogtreecommitdiffstats
path: root/main/squid/squid.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/squid/squid.initd')
-rw-r--r--main/squid/squid.initd26
1 files changed, 19 insertions, 7 deletions
diff --git a/main/squid/squid.initd b/main/squid/squid.initd
index bbdc2bed2a..4242b216ec 100644
--- a/main/squid/squid.initd
+++ b/main/squid/squid.initd
@@ -5,6 +5,8 @@
opts="${opts} reload rotate"
+conf=/etc/squid/squid.conf
+
depend() {
need net
}
@@ -25,7 +27,7 @@ maxfds() {
checkconfig() {
maxfds
- local CACHE_SWAP=$(awk '/^[ \t]*cache_dir[ \t]+/ { if ($2 == "coss" ) printf "%s/stripe ", $3 ; else printf "%s/00 ", $3; }' < /etc/squid/squid.conf)
+ local CACHE_SWAP=$(awk '/^[ \t]*cache_dir[ \t]+/ { if ($2 == "coss" ) printf "%s/stripe ", $3 ; else printf "%s/00 ", $3; }' < $conf)
[ -z "$CACHE_SWAP" ] && CACHE_SWAP="/var/cache/squid/00"
local x
@@ -50,27 +52,37 @@ checkconfig() {
return 0
}
+get_pidfile() {
+ PIDFILE=$(awk '/^[ \t]*pid_filename[ \t]+/ {print $2}' $conf)
+ [ -z "$PIDFILE" ] && PIDFILE=/var/run/squid/squid.pid
+}
+
start() {
+ get_pidfile
checkconfig || return 1
ebegin "Starting squid"
- KRB5_KTNAME="${SQUID_KEYTAB}" /usr/sbin/squid ${SQUID_OPTS}
+ start-stop-daemon --start --pidfile "$PIDFILE" \
+ --env KRB5_KTNAME="${SQUID_KEYTAB}" \
+ --exec /usr/sbin/squid -- ${SQUID_OPTS}
eend $? && sleep 1
}
stop() {
+ local rc=0
ebegin "Stopping squid"
+ get_pidfile
/usr/sbin/squid -k shutdown
+
# Now we have to wait until squid has _really_ stopped.
- sleep 1
- if [ -f /var/run/squid.pid ] ; then
+ if [ -f "$PIDFILE" ] ; then
einfon "Waiting for squid to shutdown ."
cnt=0
- while [ -f /var/run/squid.pid ] ; do
+ while [ -f "$PIDFILE" ] ; do
cnt=$(expr $cnt + 1)
if [ $cnt -gt 60 ] ; then
# Waited 120 seconds now. Fail.
echo
- eend 1 "Failed."
+ rc=1
break
fi
sleep 2
@@ -78,7 +90,7 @@ stop() {
done
echo
fi
- eend 0
+ eend $rc
}
reload() {