From 00ed0c57c73053ddb323e1f3f7dc2267ae2b9392 Mon Sep 17 00:00:00 2001 From: "Esteban Mackay Q." Date: Thu, 5 Dec 2024 19:08:32 -0500 Subject: [PATCH] Update wifi-connect.sh --- install/wifi-connect.sh | 51 ++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/install/wifi-connect.sh b/install/wifi-connect.sh index 431f307..969d656 100644 --- a/install/wifi-connect.sh +++ b/install/wifi-connect.sh @@ -34,33 +34,33 @@ docker-compose down sudo cat > /usr/local/bin/autoap.sh <<- "EOF" #!/bin/bash -# Tiempo de espera inicial después del encendido en segundos -TIEMPO_ESPERA_INICIAL=300 +# Tiempo de espera inicial (3 minutos) +TIEMPO_ESPERA_INICIAL=180 -# Lista de servicios a verificar y reiniciar si es necesario +# Lista de servicios systemd a verificar y detener/iniciar SERVICIOS=("nginx" "hbmon.service" "hbmon2.service" "hbmon-js.service" "daprs-board.service") -# Función para probar la conexión a Internet -check_internet() { - # Comprobamos la conexión a tres sitios +# Función para probar la conectividad a Internet +test_internet() { + # Prueba de ping a varios sitios for site in "noip.com" "google.com" "cloudflare.com"; do if ping -c 1 "$site" >/dev/null 2>&1; then - return 0 # Conexión exitosa, salimos de la función + return 0 # Conexión exitosa, retorno 0 fi done - return 1 # Ningún sitio respondió + return 1 # No hay conexión } # Esperar el tiempo inicial sleep $TIEMPO_ESPERA_INICIAL -# Realizar prueba de ping a varios sitios -if check_internet; then - # Si recibe respuesta de cualquiera de los sitios, el script se detiene - echo "Conexión a Internet detectada. Saliendo del script." +# Realizar prueba de internet +if test_internet; then + # Si hay respuesta de Internet, el script finaliza + echo "Respuesta de Internet recibida. Saliendo del script." exit 0 else - # Si no recibe respuesta, detener servicios y ejecutar wifi-connect + # Si no hay respuesta de Internet, detener los servicios for servicio in "${SERVICIOS[@]}"; do if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && sudo systemctl is-active "$servicio" >/dev/null 2>&1; then sudo systemctl stop "$servicio" @@ -71,34 +71,27 @@ else cd /opt/wc docker-compose up -d - # Ciclo infinito para verificar el ping + # Ciclo infinito para verificar la conexión a Internet while true; do - if check_internet; then - # Si recibe respuesta de ping, ejecutar docker-compose down + if test_internet; then + # Si hay respuesta de Internet, realizar las siguientes acciones cd /opt/wc docker-compose down network_name="WiFi Connect" nmcli connection show "$network_name" &>/dev/null && nmcli connection delete "$network_name" &>/dev/null - # Salir del ciclo y continuar con el script - break - fi - # Esperar antes del siguiente intento de ping - sleep 5 - done - # Continuar con el script después de recibir respuesta de ping - # Ciclo infinito de ping hasta recibir respuesta y reiniciar servicios - while true; do - if check_internet; then - # Recibió respuesta de ping, verificar y reiniciar servicios + # Reiniciar los servicios systemd for servicio in "${SERVICIOS[@]}"; do if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && ! sudo systemctl is-active "$servicio" >/dev/null 2>&1; then - sudo systemctl restart "$servicio" + sudo systemctl start "$servicio" fi done + # Detener el servicio autoap + sudo systemctl stop autoap.service + # Finalizar el script - echo "Respuesta de ping recibida. Servicios reiniciados. Saliendo del script." + echo "Respuesta de Internet recibida. Servicios reiniciados y autoap detenido. Saliendo del script." exit 0 fi # Esperar antes de realizar el siguiente intento de ping