From: Michael Tremer Date: Tue, 11 Jun 2013 17:04:12 +0000 (+0200) Subject: Merge remote-tracking branch 'stevee/squid-fast-shutdown' into next X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=523b5d1afa51d31a6f99e07c54bdd17844acef51;hp=d773e8dd788c69e25c1a7927a55680b34ab6e13e Merge remote-tracking branch 'stevee/squid-fast-shutdown' into next --- diff --git a/src/initscripts/init.d/squid b/src/initscripts/init.d/squid index 1a1425d0c..08a3029a2 100644 --- a/src/initscripts/init.d/squid +++ b/src/initscripts/init.d/squid @@ -86,10 +86,31 @@ case "$1" in boot_mesg "Stopping Squid Proxy Server..." squid -k shutdown >/dev/null 2>&1 evaluate_retval - killproc /usr/bin/squidGuard >/dev/null - killproc /usr/sbin/updxlrator >/dev/null - killproc /usr/bin/squidclamav >/dev/null + + # Stop squidGuard, updxlrator, squidclamav + # and redirect_wrappers. + killproc /usr/bin/squidGuard >/dev/null & + killproc /usr/sbin/updxlrator >/dev/null & + killproc /usr/bin/squidclamav >/dev/null & + killproc /usr/sbin/redirect_wrapper >/dev/null & + + # Wait until all redirectors have been stopped. + wait + + # If squid is still running, wait up to 30 seconds + # before we go on to kill it. + counter=30 + + while [ ${counter} -gt 0 ]; do + statusproc /usr/sbin/squid >/dev/null && break; + sleep 1 + counter=$(( ${counter} - 1)) + done + + # Kill squid service, if still running. killproc /usr/sbin/squid >/dev/null + + # Trash remain pid file from squid. rm -rf /var/run/squid.pid fi ;;