No sé por qué, pero como mencionas, a veces cuando falla el wifi, el administrador de red no encuentra la red nuevamente.
Creo que el problema es que el administrador de red, después de una falla de conexión wifi, no actualiza la lista de wifi (y parece que el administrador de red oculta la red problemática). Network-manager no tiene una opción de menú para volver a escanear, y deshabilitar y habilitar la casilla de verificación inalámbrica en el menú de network-manager no obliga a un nuevo escaneo wifi (como lo hace reiniciar el servicio).
Cuando el administrador de red pierde mi conexión inalámbrica y no vuelve a encontrar mi wifi (y sé que el wifi está operativo), ejecuto el comando:
sudo iwlist wlan0 scan
Realiza un escaneo wifi en la interfaz wlan0 (wlan0 es el nombre de la interfaz inalámbrica en mi computadora portátil) y le muestra las redes inalámbricas disponibles, pero como efecto secundario, el administrador de red actualiza automáticamente su lista y encuentra la red perdida.
Prefiero ejecutar el comando manualmente cuando ocurre este problema (la reconexión de red no garantiza la reanudación de la comunicación y algunos programas deberán reiniciarse).
Pero, como mencionas, puedes cronificarlo y puedes hacerlo sin probar la conectividad (el proceso de escaneo actualiza tu lista wifi pero no cierra tu conexión inalámbrica actual, si estás conectado).
Si lo prefiere, puede probar la conectividad utilizando ping o iwconfig y, si no está conectado, inicie el escaneo.
Algo como:
#!/bin/bash
if ! ping -c 1 -W 1 your_router_ip &> /dev/null
then
iwlist wlan0 scan
fi
Pero recuerde que este script se debe sudo o ejecutar con privilegios de root. Envía solo 1 ping con 1 segundo de tiempo de espera.