Service Squid Proxy on Ubuntu 10.4 not working returns “Unknown instance: “

If no matter what you do you keed getting the “Unknown instance” and you cannot control squid instance, you found yourself a bug!

zen@zenware-mobile:~$ sudo service squid start
start: Job failed to start
zen@zenware-mobile:~$ sudo service squid restart
restart: Unknown instance:
apin@apin-laptop:~$ sudo service squid stop
stop: Unknown instance:
zen@zenware-mobile:~$ sudo service squid reload
stop: Unknown instance:
zen@zenware-mobile:~$ good lord…

If you are experiencing those messages, here is what you need to do:

1) zen@zenware-mobile:~$ sudo mcedit /etc/init.d/squidfix

2) Paste this script

#! /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

NAME=squid
DAEMON=/usr/sbin/squid
LIB=/usr/lib/squid
PIDFILE=/var/run/$NAME.pid
SQUID_ARGS=”-D -YC”

[ ! -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
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`
ctp=`grepconf cache_dir ufs`

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" ] || [ "$ctp" = "coss" -a ! -f "$cdr" ]
then
log_warning_msg “Creating squid cache structure”
$DAEMON $SQUID_ARGS -z
fi

if [ "$CHUID" = "" ]; then
CHUID=root
fi

maxfds
umask 027
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 $?
else
log_end_msg $?
fi
;;
stop)
log_daemon_msg “Stopping Squid HTTP proxy” “squid”
if stop ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
reload|force-reload)
log_action_msg “Reloading Squid configuration files”
$DAEMON -k reconfigure
;;
restart)
log_daemon_msg “Restarting Squid HTTP proxy” “squid”
stop
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
status)
status_of_proc -p “$PIDFILE” “$DAEMON” squid && exit 0 || exit $?
;;
*)
echo “Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|s
tatus}”
exit 3
;;
esac

exit 0

3) chmod +x /etc/init.d/squidfix

4) Enjoy

zen@zenware-mobile:/etc/init.d# sudo service squidfix status
* squid is running
zen@zenware-mobile:/etc/init.d# sudo service squidfix reload
* Reloading Squid configuration files
zen@zenware-mobile:/etc/init.d# service squidfix stop
* Stopping Squid HTTP proxy squid

*  Waiting…                                                                   * …                                                                           * …                                                                           * …                                                                           * …                                                                           * …                                                                           * …                                                                   [ OK ]
[ OK ]
zen@zenware-mobile:/etc/init.d# sudo service squidfix start
* Starting Squid HTTP proxy squid
[ OK ]
zen@zenware-mobile:/etc/init.d#


http://apinisme.wordpress.com/2010/07/05/service-squid-di-ubuntu-10-04/
Share

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top


5 Comments »

  1. Huby Franck Says:

    After changing special chars in youre script it run well thank you for youre work.

    comment-bottom
  2. Tim Says:

    Watch your quotation marks

    comment-bottom
  3. Live Says:

    Or just use this in the mean time:

    sudo squid -k shutdown – to STOP IT
    sudo squid – to Start IT
    sudo squid -k shutdown && sudo squid – to NOT type 2 commands and ReStart the squid server

    Works for Ubuntu LTS 10.04.

    comment-bottom
  4. Service Squid Proxy on Ubuntu 10.4 not working returns “Unknown instance: “…

    If no matter what you do you keed getting the Unknown instance and you cannot control squid instance, you found yourself a bug! zen@zenware-mobile:~$ sudo…

    comment-bottom
  5. Mauladi Says:

    Thanks, it’s work for me, Ubuntu 10.04.2 LTS.

    i’m just change from ” to “

    comment-bottom

RSS feed for comments on this post. TrackBack URL

Leave a comment