blob: 29fda35bf20243c323b04801d4f78f509ea2b4f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-proxy/squid/files/squid.initd,v 1.6 2006/09/20 08:59:55 mrness Exp $
opts="${opts} reload rotate"
depend() {
need net
}
# 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 8192 ] || SQUID_MAXFD=8192
local global_file_max=`cat /proc/sys/fs/file-max`
local 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
}
checkconfig() {
maxfds
local CACHE_SWAP=`awk '/^[ \t]*cache_dir[ \t]+/ { printf "%s ", $3 ; }' < /etc/squid/squid.conf`
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/cache/squid
umask 027
for x in $CACHE_SWAP ; do
if [ ! -d $x/00 ] ; then
ebegin "Initializing cache directories"
local INIT_CACHE_RESPONSE=`/usr/sbin/squid -z -N -D 2>&1`
if [ $? != 0 ] || [ "$INIT_CACHE_RESPONSE" != "${INIT_CACHE_RESPONSE/erminated abnormally}" ]; then
eend 1
echo "$INIT_CACHE_RESPONSE"
return 1
fi
eend 0
break
fi
done
return 0
}
start() {
checkconfig || return 1
ebegin "Starting squid"
/usr/sbin/squid ${SQUID_OPTS}
eend $? && sleep 1
}
stop() {
ebegin "Stopping squid"
/usr/sbin/squid -k shutdown
# Now we have to wait until squid has _really_ stopped.
sleep 1
if [ -f /var/run/squid.pid ] ; then
einfon "Waiting for squid to shutdown ."
cnt=0
while [ -f /var/run/squid.pid ] ; do
cnt=`expr $cnt + 1`
if [ $cnt -gt 60 ] ; then
# Waited 120 seconds now. Fail.
echo
eend 1 "Failed."
break
fi
sleep 2
echo -n "."
done
echo
fi
eend 0
}
reload() {
checkconfig || return 1
ebegin "Reloading squid"
/usr/sbin/squid -k reconfigure
eend $?
}
rotate() {
service_started squid || return 1
ebegin "Rotating logs"
/usr/sbin/squid -k rotate
eend $?
}
|