-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsquid.init
More file actions
196 lines (177 loc) · 4.29 KB
/
squid.init
File metadata and controls
196 lines (177 loc) · 4.29 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#!/bin/sh
#
# squid This shell script takes care of starting and stopping
# Squid Internet Object Cache
#
# chkconfig: 345 90 10
#
# 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.
# description(es): Squid - Cache de Objetos de Internet. Cache de objetos \
# es una manera de almacenar objetos Internet (i.e. Datos \
# disponibles vía protocolos HTTP, FTP y gopher) en un \
# sistema más próximo al site solicitador que el sistema \
# original en internet. Navegadores www pueden usar el \
# cache squid local como un servidor proxy HTTP, reduciendo \
# tanto el tiempo de acceso así como el consumo de banda de \
# comunicación.
# description(pt_BR): Squid - Cache de Objetos da Internet. Cache de objetos \
# é uma maneira de armazenar objetos Internet (i.e. dados \
# disponíveis via protocolos HTTP, FTP e gopher) em um \
# sistema mais próximo ao site requisitante do que o sistema \
# original na internet. Navegadores www podem usar o cache \
# squid local como um servidor proxy HTTP, reduzindo o tempo \
# de acesso bem como o consumo de banda de comunicação.
#
# pidfile: /var/run/squid.pid
# config: /etc/squid/squid.conf
# Source function library
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
# Get service config
[ -f /etc/sysconfig/squid ] && . /etc/sysconfig/squid
# Check that networking is up.
if is_yes "${NETWORKING}"; then
if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
msg_network_down Squid
exit 1
fi
else
exit 0
fi
# Set default shutdown timeout if it is not set in service config
SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-60}
# determine which one is the cache_swap directory
CACHE_SWAP=$(awk '/^cache_dir/{print $3}' /etc/squid/squid.conf)
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/cache/squid
check_cache_dirs() {
local need_init=0 dir
for dir in $CACHE_SWAP; do
if [ ! -d $dir/00 ]; then
need_init=1
fi
done
if [ $need_init = 1 ]; then
show "Initializing Squid cache dirs"
squid -z -F -D >> /var/log/squid/squid.out 2>&1 && ok || fail
fi
}
start() {
# Check if the service is already running?
if [ ! -f /var/lock/subsys/squid ]; then
check_cache_dirs
msg_starting Squid
daemon /usr/sbin/squid $SQUID_OPTS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/squid
else
msg_already_running Squid
fi
}
stop() {
if [ -f /var/lock/subsys/squid ]; then
# Stop daemons.
msg_stopping Squid
killproc squid
if [ -f /var/run/squid.pid ]; then
show "Waiting for Squid to stop"
busy
timeout=0
while : ; do
[ ! -f /var/run/squid.pid ] || break
if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
RETVAL=1
break
fi
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
fi
}
# check that squid config is ok
configtest() {
show "Checking squid config syntax"
squid -k parse >> /var/log/squid/squid.out 2>&1
RETVAL=$?
[ $RETVAL = 0 ] && ok || fail
}
reload() {
if [ -f /var/lock/subsys/squid ]; then
msg_reloading Squid
busy
squid -k reconfigure
RETVAL=$?
[ $RETVAL -ne 0 ] && RETVAL=7
[ $RETVAL -eq 0 ] && ok || fail
else
msg_not_running Squid
exit 7
fi
}
restart() {
# if service is up, do configtest
if [ -f /var/lock/subsys/squid ]; then
configtest
if [ $RETVAL != 0 ]; then
exit 1
fi
fi
stop
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
start)
start
;;
stop)
stop
;;
restart)
restart
;;
try-restart)
condrestart
;;
reload|force-reload)
reload
;;
status)
status squid
exit $?
;;
init)
show "Initializing Squid"; echo
check_cache_dirs
;;
*)
msg_usage "$0 {start|stop|init|restart|try-restart|reload|force-reload|status}"
exit 3
esac
exit $RETVAL