Last active
January 31, 2019 08:46
-
-
Save billyriantono/d49b99cfd2ddb59f266f to your computer and use it in GitHub Desktop.
/etc/init.d/squid file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# squid This shell script takes care of starting and stopping | |
# Squid Internet Object Cache | |
# | |
# chkconfig: - 90 25 | |
# 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. | |
# pidfile: /var/run/squid.pid | |
# config: /etc/squid/squid.conf | |
PATH=/usr/bin:/sbin:/bin:/usr/sbin | |
export PATH | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
# Source networking configuration. | |
. /etc/sysconfig/network | |
# Check that networking is up. | |
[ ${NETWORKING} = "no" ] && exit 0 | |
# check if the squid conf file is present | |
[ -f /etc/squid/squid.conf ] || exit 0 | |
# determine the name of the squid binary | |
[ -f /usr/sbin/squid ] && SQUID=squid | |
[ -z "$SQUID" ] && exit 0 | |
# determine which one is the cache_swap directory | |
CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid.conf | \ | |
grep cache_dir | sed -e 's/cache_dir//' | \ | |
cut -d ' ' -f 2` | |
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/cache | |
# default squid options | |
# -D disables initial dns checks. If you most likely will not to have an | |
# internet connection when you start squid, uncomment this | |
#SQUID_OPTS="-D" | |
RETVAL=0 | |
case "$1" in | |
start) | |
echo -n "Starting $SQUID: " | |
for adir in $CACHE_SWAP; do | |
if [ ! -d $adir/00 ]; then | |
echo -n "init_cache_dir $adir... " | |
$SQUID -z -F 2>/dev/null | |
fi | |
done | |
$SQUID $SQUID_OPTS & | |
RETVAL=$? | |
echo $SQUID | |
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID | |
;; | |
stop) | |
echo -n "Stopping $SQUID: " | |
$SQUID -k shutdown & | |
RETVAL=$? | |
if [ $RETVAL -eq 0 ] ; then | |
rm -f /var/lock/subsys/$SQUID | |
while : ; do | |
[ -f /var/run/squid.pid ] || break | |
sleep 2 && echo -n "." | |
done | |
echo "done" | |
else | |
echo | |
fi | |
;; | |
reload) | |
$SQUID $SQUID_OPTS -k reconfigure | |
exit $? | |
;; | |
restart) | |
$0 stop | |
$0 start | |
;; | |
status) | |
status $SQUID | |
$SQUID -k check | |
exit $? | |
;; | |
probe) | |
exit 0; | |
;; | |
*) | |
echo "Usage: $0 {start|stop|status|reload|restart}" | |
exit 1 | |
esac | |
exit $RETVAL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
# | |
# squid Startup script for the SQUID HTTP proxy-cache. | |
# | |
# Version: @(#)squid.rc 2.20 01-Oct-2001 miquels@cistron.nl | |
# | |
### BEGIN INIT INFO | |
# Provides: squid | |
# Required-Start: $local_fs $network | |
# Required-Stop: $local_fs $network | |
# Should-Start: $named | |
# Should-Stop: $named | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Squid HTTP Proxy | |
### END INIT INFO | |
# suffield: jhealy: All local modifications commented with "suffield" | |
NAME=squid | |
DAEMON=/usr/sbin/squid | |
LIB=/usr/lib/squid | |
PIDFILE=/var/run/$NAME.pid | |
# suffield: jhealy: added -F to wait for full rebuild before serving requests | |
SQUID_ARGS="-D -sYCF" | |
[ ! -f /etc/default/squid ] || . /etc/default/squid | |
. /lib/lsb/init-functions | |
PATH=/bin:/usr/bin:/sbin:/usr/sbin | |
[ -x $DAEMON ] || exit 0 | |
grepconf () { | |
w=" " # space tab | |
sq=/etc/squid/squid.conf | |
# sed is cool. | |
res=`sed -ne ' | |
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p; | |
t end; | |
d; | |
:end q' < $sq` | |
[ -n "$res" ] || res=$2 | |
echo "$res" | |
} | |
grepconf2 () { | |
w=" " # space tab | |
sq=/etc/squid/$NAME.conf | |
# sed is cool. | |
res=`sed -ne ' | |
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p; | |
t end; | |
d; | |
:end q' < $sq` | |
[ -n "$res" ] || res=$2 | |
echo "$res" | |
} | |
# | |
# 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 4096 ] || SQUID_MAXFD=4096 | |
global_file_max=`cat /proc/sys/fs/file-max` | |
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 | |
} | |
start () { | |
cdr=`grepconf2 cache_dir /var/spool/$NAME` | |
case "$cdr" in | |
[0-9]*) | |
log_failure_msg "squid: squid.conf contains 2.2.5 syntax - not starting!" | |
log_end_msg 1 | |
exit 1 | |
;; | |
esac | |
# | |
# Create spool dirs if they don't exist. | |
# | |
if [ -d "$cdr" -a ! -d "$cdr/00" ] | |
then | |
log_warning_msg "Creating squid spool directory structure" | |
$DAEMON -z | |
fi | |
if [ "$CHUID" = "" ]; then | |
CHUID=root | |
fi | |
maxfds | |
umask 027 | |
cd $cdr | |
start-stop-daemon --quiet --start \ | |
--pidfile $PIDFILE \ | |
--chuid $CHUID \ | |
--exec $DAEMON -- $SQUID_ARGS < /dev/null | |
return $? | |
} | |
stop () { | |
PID=`cat $PIDFILE 2>/dev/null` | |
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name squid | |
# | |
# Now we have to wait until squid has _really_ stopped. | |
# | |
sleep 2 | |
if test -n "$PID" && kill -0 $PID 2>/dev/null | |
then | |
log_action_begin_msg " Waiting" | |
cnt=0 | |
while kill -0 $PID 2>/dev/null | |
do | |
cnt=`expr $cnt + 1` | |
if [ $cnt -gt 24 ] | |
then | |
log_action_end_msg 1 | |
return 1 | |
fi | |
sleep 5 | |
log_action_cont_msg "" | |
done | |
log_action_end_msg 0 | |
return 0 | |
else | |
return 0 | |
fi | |
} | |
case "$1" in | |
start) | |
log_daemon_msg "Starting Squid HTTP proxy" "squid" | |
if start ; then | |
log_end_msg $? | |
# suffield: jhealy: enable interception via tproxy | |
/usr/local/bin/squid-watcher start | |
else | |
log_end_msg $? | |
fi | |
;; | |
stop) | |
log_daemon_msg "Stopping Squid HTTP proxy" "squid" | |
# suffield: jhealy: disable interception via tproxy | |
/usr/local/bin/squid-watcher stop | |
if stop ; then | |
log_end_msg $? | |
else | |
log_end_msg $? | |
fi | |
;; | |
reload|force-reload) | |
log_action_msg "Reloading Squid configuration files" | |
start-stop-daemon --stop --signal 1 \ | |
--pidfile $PIDFILE --quiet --exec $DAEMON | |
log_action_end_msg 0 | |
;; | |
restart) | |
log_daemon_msg "Restarting Squid HTTP proxy" "squid" | |
stop | |
if start ; then | |
log_end_msg $? | |
# suffield: jhealy: enable interception via tproxy | |
/usr/local/bin/squid-watcher start | |
else | |
log_end_msg $? | |
fi | |
;; | |
*) | |
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart}" | |
exit 3 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment