Rabu, 24 November 2010

squid di ubuntu 10.04 bermasalah?

baru baru ini saya teringat kasus dua bulan kemarin, kasusnya itu ya... menyangkut kenyamanan browsing. selidik selidik ternyata tersangka nya adalah pak squid. hehehe....
alias squid di mesin ubuntu server saya suka stop sendiri tanpa sebab.
saya googling sana-sini tetap belum dapet jawaban. sampai ahirnya saya dapat postingan seseorang berbahasa inggris di suatu forum linux, kalau squid2.7 stable 9 di ubuntu 10.04 bermasalah, mereka menyimpulkan ini sebagai bug.



wow, cukup lama karena saya liat postingan itu dipublish sekitar 2 minggu setelah ubuntu 10.04 release.
kalau emang bug kok lama sekali fix nya ?
jadi saya terfikir untuk mengcompile sendiri squid dari source-nya.
hasilnya = squid lancar jaya..
menurut analisa saya sendiri squid di ubuntu 10.04 juga sekarang di 10.10 mengalami perubahan di file /etc/init.d/squid -nya
jadi saya coba lagi install squid dari apt-get dan replace /etc/init.d/squid dengan squid yang saya compile sendiri dan hasilnya : oke!

untuk teman teman yang kesulitan ketika mengalami squid yang suka stop sendiri nih saya kasih solusi. moga moga membantu :D

step :

update ubuntu dan install squid

apt-get update && apt-get install squid


hapus isi file "/etc/init.d/squid"
dan ganti dengan ini


#! /bin/sh
#
# squid Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid.rc 2.20 01-Oct-2001 miquels@cistron.nl
# Custom by : revanthem@gmail.com
### 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/spool/squid/logs/$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 ! -w "$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
log_action_end_msg 0
;;
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|status}"
exit 3
;;
esac

exit 0


lalu, save file tadi dan pastikan permission nya 755
atau kalau ragu boleh langsung di "cemot" aja :p


chmod 755 /etc/init.d/squid


lalu restart squid-nya

/etc/init.d/squid restart


taraaa...
weks, blom. blom selesai nih.
update dulu rc nya


update-rc.d squid defaults


terakhir reboot mesin nya
:D


init 6


sampai jumpa ditulisan saya berikutnya :D:D:D

2 komentar:

als mengatakan...

mantap gan ..... di coba .....

mudah - mudahan working :p

semangat gan ..... :)

rad3ntz mengatakan...

wah ane di 10.10
nih gan squid 2.6 belom 3 maunya sih ke 3 tp udah biasa di 2 ni hhaaa
thx gan

Posting Komentar