Nie wiem dlaczego, ale jak wspominasz, czasami, gdy Wi-Fi zawiedzie, menedżer sieci nie znajdzie sieci ponownie.
Myślę, że problem polega na tym, że menedżer sieci po awarii połączenia Wi-Fi nie odświeża listy Wi-Fi (i wygląda na to, że menedżer sieci ukrywa problematyczną sieć). Menedżer sieci nie ma opcji menu ponownego skanowania, a wyłączenie i włączenie pola wyboru sieci bezprzewodowej w menu menedżera sieci nie wymusza nowego skanowania Wi-Fi (podobnie jak w przypadku ponownego uruchomienia usługi).
Gdy menedżer sieci utraci połączenie przewodowe i nie znajdzie ponownie mojego Wi-Fi (i wiedziałem, że Wi-Fi działa), wykonuję polecenie:
sudo iwlist wlan0 scan
Wykonuje skanowanie Wi-Fi na interfejsie wlan0 (wlan0 to nazwa interfejsu bezprzewodowego w moim laptopie) i pokazuje dostępne sieci bezprzewodowe, ale jako efekt uboczny menedżer sieci automatycznie odświeża swoją listę i znajduje utraconą sieć.
Wolę wykonać polecenie ręcznie, gdy wystąpi ten problem (ponowne połączenie sieciowe nie zapewnia wznowienia komunikacji, a niektóre programy będą musiały zostać ponownie uruchomione).
Ale, jak wspomniałeś, możesz to zrobić i możesz to zrobić bez testowania łączności (proces skanowania aktualizuje listę Wi-Fi, ale nie zamyka twojego obecnego połączenia bezprzewodowego, jeśli jesteś podłączony).
Jeśli wolisz, możesz przetestować łączność za pomocą polecenia ping lub iwconfig, a jeśli nie masz połączenia, uruchom skanowanie.
Coś jak:
#!/bin/bash
if ! ping -c 1 -W 1 your_router_ip &> /dev/null
then
iwlist wlan0 scan
fi
Pamiętaj jednak, że ten skrypt musi być sudo lub wykonany z uprawnieniami administratora. Wysyła tylko 1 ping z 1 sekundowym limitem czasu.