У меня есть машина с Ubuntu, на которой установлено программное обеспечение, требующее интернета. Тем не менее, иногда происходит сбой Wi-Fi (например, перезагрузка маршрутизатора), и он не находит сеть снова, пока я не перезапущу диспетчер сети вручную или не выключу и не включу Wi-Fi, чтобы найти его.
Есть ли возможный способ запустить задание cron или задание supervisord для контроля подключения, и если не удается найти сеть, чтобы перезапустить службу администратора сети и подключиться к этому конкретному SSID?
networking
wireless
cron
Синий джин
источник
источник
Ответы:
Я думаю, что это может быть связано с новой ошибкой сетевого менеджера, поскольку я также начал испытывать эту проблему только недавно - думаю, после обновления до Ubuntu 15.04.
Кажется, мне удалось временно решить эту проблему как обходной путь с этими двумя файлами:
~/.bin/WiFi-Keep-Connected
, с таким содержимым:~/.config/autostart/KeepWifiConnected.desktop
, с таким содержимым:Примечание. Вам нужно будет ввести свое имя пользователя по указанному
Exec=
выше пути.NB: иногда такого перезапуска Wi-Fi недостаточно, и в этом случае мне нужно перезапустить Network Manager , введя эту команду один или даже два раза с терминала:
sudo service network-manager restart
Поэтому, возможно, было бы лучше изменить приведенный выше скрипт (на всякий случай) следующим образом:
источник
Я не знаю почему, но, как вы упомянули, иногда при сбое wifi менеджер сети не находит сеть снова.
Я думаю, что проблема в том, что сетевой администратор после сбоя соединения Wi-Fi не обновляет список Wi-Fi (и кажется, что сетевой менеджер скрывает проблемную сеть). Диспетчер сети не имеет опции меню повторного сканирования, а отключение и включение беспроводного флажка в меню диспетчера сети не вызывает новое сканирование Wi-Fi (как при перезапуске службы).
Когда администратор сети теряет соединение с Wireles и снова не находит мой wifi (и я знаю, что wifi работает), я выполняю команду:
Он выполняет сканирование Wi-Fi на интерфейсе wlan0 (wlan0 - это название беспроводного интерфейса в моем ноутбуке) и показывает доступные беспроводные сети, но в качестве побочного эффекта сетевой менеджер автоматически обновляет свой список и находит потерянную сеть.
Я предпочитаю выполнять команду вручную, когда возникает эта проблема (переподключение сети не гарантирует возобновления связи, и некоторые программы необходимо будет перезапустить).
Но, как вы упоминаете, вы можете справиться с этим, и вы можете сделать это без проверки подключения (процесс сканирования обновляет ваш список Wi-Fi, но он не закрывает ваше текущее беспроводное соединение, если вы подключены).
Если вы предпочитаете, вы можете проверить связь с помощью ping или iwconfig, а если вы не подключены, запустить сканирование.
Что-то вроде:
Но помните, что этот скрипт должен быть sudoed или выполнен с привилегиями root. Он отправляет только 1 пинг с тайм-аутом 1 секунда.
источник
Я думаю, что проблема в том, что соединение теряется из-за проблем с подключением маршрутизатора. Перезапуск диспетчера сети не может помочь, когда у самого маршрутизатора возникают проблемы. Скорее вы могли бы создать сценарий, чтобы заставить процесс, выполняющий программное обеспечение, приостанавливать использование SIGSTOP, когда соединение теряется, и снова запускать процесс, чтобы продолжать использовать SIGCONT. когда сеть станет доступной. И добавьте скрипт в ваши задания cron, планируя его запуск каждую минуту.
Для справки: http://hints.macworld.com/article.php?story=20030915193440334
Надеюсь это поможет.
источник