script de inicio de squid proxy

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

### BEGIN INIT INFO
# Required-Start: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

CUENTA=0
squid_start() {
    if [ -x /opt/squid/sbin/squid ]; then
       echo "Iniciando Servidor Squid"
       nice -n -20 /opt/squid/sbin/squid & #Iniciamos Squid con máxima prioridad
    fi
}

squid_stop() {

echo "Deteniendo Servidor Squid"
# 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"
     /opt/squid/sbin/squid -k shutdown
 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

Probamos 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»

 

< Cuarta Parte – Sexta Parte >

 

Comparte esto en
Publicado en Servidor Proxy.

4 Comentarios

  1. Pingback: Optimizar el servidor Proxy para una red de datos de alto tráfico

  2. Pingback: 🥇 Control de Tráfico de Internet - Squid Proxy Delay Pools

  3. Pingback: 🥇 Balanceo de Carga con Squid Proxy y dos Proveedores de Internet

  4. Pingback: Control de navegación con Linux - Controlar acceso a páginas web

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *