Baru saja saya mencoba squid di Ubuntu 10.04 terbaru. Saat instalasi tidak terlihat perbedaan sampai juga pada konfigurasi juga masih lancar-lancar saja. Namun saya agak sedikit ada masalah saat mulai memulai service squid. Dalam versi Ubuntu sebelumnya saya hanya mengetikkan service squid start|restart|stop|reload|status, namun itu semua tidak berjalan mulus di Ubuntu 10.04. Ada error sebagai berikut :
apin@apin-laptop:~$ sudo service squid start start: Job failed to start apin@apin-laptop:~$ sudo service squid restart restart: Unknown instance: apin@apin-laptop:~$ sudo service squid stop stop: Unknown instance: apin@apin-laptop:~$ sudo service squid reload stop: Unknown instance: apin@apin-laptop:~$
Sempet bingung dibuatnya, ada apakah dengan squid yang ada di Lucid? Setelah googling beberapa saat ternyata si Lucid menggunakan Upstart terbaru, dan masih terdapat banyak bug disana sini. Sampai saat tulisan saya ini dibuat, bug ini belum ada perbaikan dari pihak yang berwenang. Akhirnya saya coba utak atik kanan kiri, saya coba ambil script dari /etc/init.d/squid dari Ubuntu yang lama. Lalu saya inject kan ke Lucid. Langsung saja jalankan perintah berikut
sudo gedit /etc/init.d/newsquid
Lalu pastekan isinya sebagai berikut :
#! /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
Setelah disimpan jangan lupa tambahkan eksekusi untuk file yang baru dibuat tadi.
sudo chmod +x /etc/init.d/newsquid
Udah deh selesai, sekarang bisa jalanin squid seperti semula dengan perintah seperti pada Ubuntu sebelumnya, cuma yang sekarang namanya newsquid. Jadi tinggal panggil seperti ini :
sudo service newsquid start|stop|restart|status|reload
Ni contoh punya saya.
apin@apin-laptop:~$ sudo service newsquid start * Starting Squid HTTP proxy squid [ OK ] apin@apin-laptop:~$ sudo service newsquid reload * Reloading Squid configuration files apin@apin-laptop:~$ sudo service newsquid restart * Restarting Squid HTTP proxy squid [ OK ] apin@apin-laptop:~$ sudo service newsquid status * squid is running apin@apin-laptop:~$ sudo service newsquid stop * Stopping Squid HTTP proxy squid [ OK ] apin@apin-laptop:~$
Terima kasih.
makasih ya kk, sangat membantu ni tutor, squid saya jdi lancar dah, mo distop ato start, ternyata ada bug ya di service yang bru, keep up posting ya kk, sekali lagi makasih banget, masih newbie ni di linux…
Comment by grass32 — 26 September 2010 @ 7:49 am |
Terima kasih juga udah mampir ke tempat saya.
Comment by genkigama — 26 September 2010 @ 8:17 am |
membantu sekali nih tutorialnya…ijin copas yah bang
Comment by 4dhieee — 13 October 2010 @ 8:25 am |
Terima kasih sudah mampir untuk memberi komen. Dan terima kasih untuk umpan baliknya.
Comment by genkigama — 13 October 2010 @ 9:34 am |
[...] : http://apinisme.wordpress.com/2010/07/05/service-squid-di-ubuntu-10-04/ [...]
Pingback by Service Squid di Ubuntu 10.04 « Catatlah Ilmu walau secuil — 13 October 2010 @ 8:36 am |
mantab banget kakak yg satu neh, thanks ilmu2 nya mas, jangan lupa share2 lagi kalo ndak sibuk
Comment by aris muse — 16 October 2010 @ 10:07 pm |
Ya semoga bermanfaat
Comment by genkigama — 19 October 2010 @ 1:08 pm |
mas klo squid saya mau ngedirect web yang saya bikin di server bisa gk ?
jadi client yang mau internetan harus login di server squid dulu gitu bisa gk ??
mau tutornya dong . ..
Comment by toekimien — 4 July 2011 @ 5:01 pm |
Coba langsung pakai EasyHotspot saja mas.
Comment by genkigama — 21 July 2011 @ 10:26 am |
matur nwun…
Comment by awik1212 — 29 November 2011 @ 6:52 pm |