Беспроводная сеть на моем ноутбуке Dell уходит много раз, когда возобновляется с «suspend». Как только я запустил перезагрузку «sudo service network-manager restart», он начинает работать.
Мне было интересно, есть ли способ перезапустить сеть при возобновлении с приостановки и только если беспроводная сеть не была вверх! Какой бы лучший способ перезапустить сеть, не вводя пароль?
Я не хочу вручную делать это, перейдя к значку сети, а затем выполняя некоторые действия с мышью. У меня скорее была команда, которую я мог бы создать как ярлык. Я попытался создать исполняемый файл bash с реестром «service network-manager restart» и установить setuid на исполняемый файл, а также дать ему право владеть им, но это не сработало.
У меня Ubuntu 14.04 Trusty OS .
Вы можете внести изменения в sudoers, чтобы позволить вашей учетной записи пользователя выполнять необходимые команды без пароля.
Внимание: обязательно не удаляйте ничего из sudoers, не зная, для чего ! Вы можете потерять все привилегии администратора.
Открыть sudo visudo В разделе, озаглавленном «Спецификация псевдонима Cmnd», добавитьCmnd_Alias NETWORK = /usr/sbin/service network-manager restart
NETWORK - это просто псевдоним для группы команд. Дайте ему другое имя, если вы предпочитаете! В конце файла добавьте оператор user_name ALL = (ALL) NOPASSWD: NETWORK
, где вы подставляете свою учетную запись пользователя для user_name. Также замените NETWORK на любое имя, присвоенное псевдониму. Можно также обойтись без псевдонима и просто заменить его командой, но я предпочитаю его таким образом. Я нахожу, что он держит вещи более организованными. Сохраните файл и выйдите из редактора. Проверьте с помощью sudo -l, что теперь вам действительно разрешено выдавать команду. Вам все еще нужно добавить команду с помощью sudo, но вам больше не будет предложено ввести пароль.
Еще одна возможность - использовать интерфейс командной строки Network Manager (это не так «сильно», как перезапуск демона, но это сработало для меня). В этом случае операция точно такая же, как если бы вы взаимодействовали с апплетом, поэтому вам не нужны никакие привилегии.
Чтобы перезапустить интерфейс wifi, используйте этот код:
nmcli nm wifi off
sleep 5
nmcli nm wifi on
У меня были аналогичные проблемы с удалением сети (это был ошибочный маршрутизатор в моем случае), поэтому я использовал это скрипт добавлен в интерфейс командной строки Network Manager :
#!/bin/bash
PINGTEST=192.168.1.1 # my router, change here. google.com should work anytime ;-)
while /bin/true; do
if ! [ "$(ping -c 1 $PINGTEST)" ]; then
echo "Warning: connection lost at $(date) -- restart" 1>&2
nmcli nm wifi off
sleep 5
nmcli nm wifi on
sleep 60
if ! [ "$(ping -c 1 $PINGTEST)" ]; then
echo "Waiting for connection going up at $(date)" 1>&2
sleep 60
else
echo "Connection on at $(date)" 1>&2
fi
# else
# echo "Connection OK on $(date)" 1>&2
fi
sleep 60
done
он проверяет соединение каждую минуту, и если он не работает, он перезапускает Wi-Fi.
Если этого недостаточно, вам, вероятно, придется использовать более сильное оружие, например, запуск / остановка Network Manager. Даже то, что когда-то терпит неудачу, и я должен прибегнуть к выгрузке (sudo rmmod), а затем перезагрузить (sudo modprobe) модуль драйвера карты Wi-Fi.
Вы должны добавить что-то похожее на это:
YourUserName ALL=NOPASSWD: service network-manager restart
в файл / etc / sudoers и сможете перезапустить сетевой менеджер со своим скриптом.