script de inicio

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 ParteSexta Parte >

 

 

Comparte esto en
Publicado en Servidor Proxy.

Deja una respuesta

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