Использование Ubuntu 11.10 (Unity 3D) и кабельного (DSL) интернет-соединения без маршрутизатора или модема.
Если я отключу свое интернет-соединение, я могу просто восстановить соединение, щелкнув по значку диспетчера сети и выбрав соединение из выпадающего меню, так как мои соединения видны. Нет необходимости перезапускать сетевой менеджер.
Но всякий раз, когда интернет-соединение разрывается само по себе , я открываю терминал и использую его, sudo service network-manager restart
поскольку не вижу никакого соединения в раскрывающемся меню диспетчера сети. Только после этой команды менеджер сети запускается и автоматически подключается.
Существуют ли какие-либо настройки, чтобы диспетчер сети не перезапускался при каждом разрыве соединения (в отличие от моего отключения, когда перезапуск не требуется)?
Другими словами, я не хочу, чтобы сетевой менеджер останавливался, пока я пользуюсь компьютером, независимо от того, было ли разорвано мое соединение с провайдером или нет.
Нет ничего сложного в том, чтобы открыть терминал и ввести команду и пароль, но если есть способ убедиться, что сетевой менеджер не останавливается, это было бы лучше.
редактировать от 26 января 2012 года: строки из системного журнала
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: No response to 3 echo-requests
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Serial link appears to be disconnected.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connect time 241.5 minutes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Sent 3575961 bytes, received 79026206 bytes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connection terminated.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing workstation service for ppp0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: activated -> failed (reason 'ppp-disconnect') [100 120 13]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> Activation (eth0) failed.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): now unmanaged
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: failed -> unmanaged (reason 'removed') [120 10 36]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): deactivating device (reason 'removed') [36]
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> could not read ppp stats: No such device
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): cleaning up...
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): taking down device.
Jan 25 20:09:36 aes-Inspiron-1545 kernel: [18027.155552] sky2 0000:09:00.0: eth0: disabling interface
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Interface eth0.IPv6 no longer relevant for mDNS.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Leaving mDNS multicast group on interface eth0.IPv6 with address fec0::b:223:aeff:fe2d:2431.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3b4f:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3754:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:7345:f137:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for fec0::b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Terminating on signal 15
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Exit.
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[3529]: <info> Caught signal 15, shutting down...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> caught signal 15, shutting down normally.
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <warn> quit request received, terminating...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): now unmanaged
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): device state change: unavailable -> unmanaged (reason 'removed') [20 10 36]
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> exiting (success)
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> ModemManager (version 0.5) starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> NetworkManager (version 0.9.1.90) is starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> Read config file /etc/NetworkManager/NetworkManager.conf
Jan 25 20:11:56 aes-Inspiron-1545 kernel: [18167.470749] init: reconnect main process (6948) terminated with status 2
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin Nokia
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin Ericsson MBM
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin MotoC
nmcli con up id "DSL connection 1"
, У меня нет DSL, поэтому мне нужна ваша помощь со всеми командами и выводами. Прокомментируйте ваш вывод.nmcli -t -f TYPE,STATE dev
Ответы:
Вот скрипт Upstart, который вы можете разместить
/etc/init/reconnect.conf
:Потеряв IP-адрес для eth0 (настройте на свой интерфейс, если он отличается), он перезапустит задание сетевого менеджера и восстановит связь.
источник
reconnect.conf
в/etc/init
. Единственное, что вам нужно изменить, это eth0 на что-то другое, если это не правильно.inet addr:
часть является просто фильтром для grep и не должна быть затронута. Соответствующее имя соединения можно проверить черезifconfig
. Upstart прочитает этот файл автоматически, и вы должны сделать это,sudo start reconnect
чтобы начать работу. При следующей перезагрузке он запустится автоматически.ifconfig
начинается с,etho
так что я буду использовать это, а затем,sudo start reconnect
когда соединение обрывается. Я отправлю обратно с результатом. Благодарность!/etc/init/reconnect.conf
и перезагрузил. Когда через некоторое время после перезагрузки мое соединение оборвалось, nm не перезагружался. Так я и выпустилsudo start reconnect
.reconnect stop/waiting
был ответ, но NM не перезапустился. Я должен был сделатьsudo service network-manager restart
то, что я обычно делаю. Вместоrestart network-manager
чего-то вродеrestart service network-manager
бы потребуется? (Кстати, я поставил eth0, а не etho (в отличие от того, что есть в моем предыдущем комментарии))service network-manager restart
. Просто любопытно, что выводится вstatus network-manager
вашей системе? Если это говоритstop/waiting
(или выдает ошибку) после перезагрузки, вам нужно изменить start на что-то вродеstart on runlevel [2345]
и добавитьsleep 60
до того, как это произойдет .Быстрый и грязный обходной путь - написать скрипт, который запускается
ping -i 5 google.com || service network-manager restart
от имени пользователя root (для этого можно написать /etc/init.d/-daemon, но поскольку решение ОЧЕНЬ грязное, я бы этого не делал)Этот сценарий будет перезапускать сетевой менеджер каждый раз, когда Google не будет найден, и проверять его раз в пятую секунду.
источник
Попробуйте wicd вместо network-manager, это было рекомендовано для аналогичного случая: https://bbs.archlinux.org/viewtopic.php?id=124443
Я не знаю, решит ли это проблему и не поддерживает ли wicd pppoe.
Сделайте резервную копию .deb файлов, на всякий случай:
Очистить сетевой менеджер и установить wicd
Перезагрузка. Попробуйте подключиться с помощью wicd.
Если что-то пойдет не так, просто удалите wicd и переустановите сетевой менеджер:
источник
alias nm='echo "password" | sudo -S service network-manager restart'
как обходной путь. В-третьих, из ваших других полезных ссылок, похоже, что проблема не имеет ничего общего с Ubuntu, но является «восходящей», и поэтому я собираюсь спросить, должен ли этот вопрос быть закрыт.Я сделал скрипт для этой проблемы:
Это работает нормально, но этот скрипт занимает слишком много моего процессора. Может ли кто-нибудь помочь мне снизить загрузку процессора?
источник
Почему я отвечаю на этот вопрос?
Есть очень хорошие ответы, но все написано с помощью init или upstart. Поскольку теперь мы будем использовать systemd, я пишу лучший скрипт и информацию. о том, как это сделать.
Но есть ли способ?
Есть способ. Вам просто нужно создать скрипт, который контролирует состояние вашей сети и перезапустить Network Manager по требованию. Мы создадим этот сценарий и службу systemd, которая будет запускаться вместе с системой и будет отслеживать состояние вашей сети каждые 5 секунд, чтобы определить, подключены вы к сети или нет.
Что я должен делать?
Прежде всего, нам нужно установить инструмент fping, чтобы выполнить один из тестов соединения (fping возвращает «живо», если соединение возможно, и «адрес не найден», если нет):
Теперь мы создадим скрипт монитора в нашей системе. Создайте файл в / usr / local / bin / под названием nm-watcher:
И отредактируйте его, используя nano или предпочитаемый вами текстовый редактор:
Скопируйте и вставьте этот скрипт в редактор, сохраните и закройте файл (если вы используете nano, как в этом руководстве, используйте последовательно «CTRL + X», «Y» и «ENTER»). Не забудьте изменить wlan0 на интерфейс, который вы хотите, чтобы wm-watcher отслеживал:
Для запуска этого скрипта нам нужно сделать его исполняемым:
Теперь мы создадим сервис SystemD, для этого вам нужно создать и отредактировать файл nm-watcher.service в / etc / systemd / system /:
И поместите этот контент в файл:
Это создаст служебный файл, который заставит SystemD вызывать сценарий, который мы создавали ранее при каждой загрузке, после того как мы установили соединение с помощью network-manager.service.
Мы должны знать, чтобы включить эту службу, используя:
И запустите сервис, набрав:
Чтобы проверить, работает ли служба, введите:
Если у вас есть какие-либо проблемы со службой, вы можете просмотреть сообщения отладки, используя:
Должен ли я делать какие-либо другие вещи?
Нет, это все, что нужно для выполнения этой задачи. Этот скрипт имеет очень низкое влияние на производительность системы, как вы можете видеть на этом скриншоте:
источник
На моем старом ноутбуке у меня была плохая карта Wi-Fi, которая имела тенденцию отключаться от Wi-Fi, если была большая нагрузка (например, загрузка больших файлов и т. Д.).
Я создал простой скрипт, чтобы проверить, подключен ли мой интернет, а если нет, то перезапустите диспетчер сети.
Я создал корневой cronjob
sudo crontab -e
и установил его так, чтобы каждую минуту (вы можете делать это реже, но сценарий является простым пингом, поэтому он не ресурсоемкий) он будет запускать сценарий.Так что если мой WiFi по какой-то причине отключится, он будет отключен только на минуту, топы. Если вы не знакомы
cron
, я рекомендую прочитать этоисточник