]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
Merge remote-tracking branch 'stevee/squid-fast-shutdown' into next
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Jun 2013 17:04:12 +0000 (19:04 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Jun 2013 17:04:12 +0000 (19:04 +0200)
src/initscripts/init.d/squid

index 1a1425d0c695f1b2a4628b1100006f9b5d708826..08a3029a202e802092fe4af0b5b2894a8aae99f2 100644 (file)
@@ -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
                ;;