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


Pingback: Optimizar el servidor Proxy para una red de datos de alto tráfico
Pingback: 🥇 Control de Tráfico de Internet - Squid Proxy Delay Pools
Pingback: 🥇 Balanceo de Carga con Squid Proxy y dos Proveedores de Internet
Pingback: Control de navegación con Linux - Controlar acceso a páginas web