Сетевому менеджеру требуется время, чтобы решить, что соединение не возвращается, и только после этого он попытается восстановить соединение. Я нахожу wicd
более «отзывчивым», чем NetworkManager
- я бы подумал переключиться на это.
Вы также можете запустить фоновый скрипт, который опрашивает уровень сигнала и вызывает отключение, если сигнал выходит за пределы определенного уровня. После отключения ваш сетевой менеджер будет обычно подключаться к сети с более сильным сигналом.
Пример использования скрипта iw(1)
из пакета iw :
#!/bin/bash IFACE="wlan0" LIMIT="-75" while true; do signal=$(iw $IFACE link | grep signal | awk '') [ $signal ] && [ $signal -lt $LIMIT ] && iw $IFACE disconnect echo $signal sleep 1 done