Script de inicio para Squid
Cuando compilamos el servicio de Squid Proxy desde un tarball, indefectiblemente debemos crearle un script de inicio. Esto sirve para que el servicio suba cada vez que prendamos el servidor. También nos puede servir para reiniciar o detener el servicio manualmente.
Entonces, creamos un archivo llamado “squid.sh” y lo ubicamos en la ruta /etc/ini.t/. Luego, insertamos en su contenido el siguiente código:
#!/bin/bash
#
#
CUENTA=0
squid_start() {
if [ -x /opt/squid/sbin/squid ]; then
echo "Iniciando Servidor Squid"
/opt/squid/sbin/squid &
fi
}
squid_stop() {
echo "Deteniendo Servidor Squid"
/opt/squid/sbin/squid -k shutdown
# CREAMOS UN BUCLE WHILE PARA INFORMAR EN PANTALLA LOS SEGUNDOS TRANSCURRIDOS DESDE EL CIERRE DE SQUID
while [ /opt/squid/var/run/ ]; do
let "CUENTA++"
archivo_pid=/opt/squid/var/run/squid.pid
# VERIFICAMOS QUE EL PID DE SQUID DEJE DE EXISTIR PARA SALIR DEL BUCLE WHILE
if [ -f "$archivo_pid" ]; then
echo "DETENIENDO - puede tardar entre 30 y 60 segundos"
else
break
fi
sleep 1
echo $CUENTA
done
echo "Servicio Squid Detenido"
}
squid_restart() {
squid_stop
sleep 1
squid_start
echo "Reiniciando Servidor Squid"
}
case "$1" in
'start')
squid_start
;;
'stop')
squid_stop
;;
'restart')
squid_restart
;;
*)
echo "usage $0 start|stop|restart"
;;
esac
¿Por qué toca esperar tanto para que cierre Squid?
Porque el comando squid -k shutdown hace que Squid vaya terminando las conexiones de los clientes en orden. Si quieres que Squid se cierre sin esperar a nadie, cortando abruptamente las conexiones, usa el comando squid -k interrupt.
De todas formas, si queremos acortar el tiempo de cierre del proceso con la opción -k shutdown (digamos que a 15 segundos), debemos adicionar el siguiente parámetro en el archivo de configuración de Squid:
shutdown_lifetime 15 seconds
Probando el script
Finalmente configuramos el script de inicio como runlevel, para que el sistema lo ejecute cada vez que prendamos el servidor.
_$ sudo update-rc.d squid.sh defaults
Comience a probar su funcionamiento. Para iniciar:
_$ sudo /etc/init.d/squid.sh start
Para detenerlo:
_$ sudo /etc/init.d/squid.sh stop
Para reiniciarlo:
_$ sudo /etc/init.d/squid.sh restart
Puede usted encontrar una ampliación sobre programación de scripts en GNU/Linux, aquí
Puede que le interese «Migrar de Windows a Linux«
También puede que le interese «Monitorear tráfico del canal de Internet en Linux»
Además le puede interesar «Cómo mitigar la obsolescencia programada con software libre»
También puede ver algunos «Aspectos Generales de la Seguridad Informática«
Tenemos además un post sobre cómo «Matar Procesos Zombis» en Linux
< Cuarta Parte – Sexta Parte >
Comparte esto en