Korzystanie z Ubuntu 11.10 (Unity 3D) i kablowego (DSL) połączenia internetowego bez routera lub modemu.
Jeśli ja odłączeniu połączenia internetowego, mogę po prostu podłączyć klikając na ikonę menedżera sieci i wybierając połączenie z rozwijanego menu ponieważ moje połączenia są widoczne. Nie ma potrzeby restartowania menedżera sieci.
Ale ilekroć połączenie internetowe samo się zrywa , otwieram terminal i używam go, sudo service network-manager restart
ponieważ nie widzę żadnego połączenia w rozwijanym menu menedżera sieci. Dopiero po wydaniu polecenia menedżer sieci uruchamia się i automatycznie łączy.
Czy jest jakieś ustawienie, aby menedżer sieci nie musiał być ponownie uruchamiany za każdym razem, gdy połączenie zostanie zerwane (w przeciwieństwie do mojego rozłączania, gdy nie trzeba go ponownie uruchamiać)?
Innymi słowy, nie chcę, aby menedżer sieci zatrzymywał się, dopóki korzystam z komputera, niezależnie od tego, czy moje połączenie z usługodawcą internetowym zostało przerwane, czy nie.
Otwarcie terminala i wpisanie polecenia i hasła nie jest niczym wielkim, ale jeśli istnieje sposób na to, aby menedżer sieci się nie zatrzymał, byłoby lepiej.
edytuj z 26 stycznia 2012: Linie z syslog
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"
. Nie mam DSL, więc potrzebuję twojej pomocy ze wszystkimi poleceniami i danymi wyjściowymi. Skomentuj swoje wyniki.nmcli -t -f TYPE,STATE dev
Odpowiedzi:
Oto skrypt Upstart, który możesz umieścić
/etc/init/reconnect.conf
:Po utracie adresu IP dla eth0 (skonfiguruj interfejs, jeśli jest inny), zrestartuje zadanie menedżera sieci i przywróci połączenie.
źródło
reconnect.conf
do/etc/init
. Jedyne, co musisz zmienić, to eth0 na coś innego, jeśli nie jest poprawne.inet addr:
część jest tylko filtrem grep i nie należy jej dotykać. Odpowiednią nazwę połączenia można sprawdzić za pośrednictwemifconfig
. Upstart automatycznie odczyta ten plik i powinieneś zrobić,sudo start reconnect
aby rozpocząć pracę. Przy następnym uruchomieniu uruchomi się automatycznie.ifconfig
zaczyna się od,etho
więc użyję tego, a potem,sudo start reconnect
gdy połączenie się zerwie. Wyślę z powrotem z wynikiem. Dzięki!/etc/init/reconnect.conf
i uruchomiłem ponownie. Kiedy moje połączenie zostało przerwane jakiś czas po restarcie, nm nie uruchomił się ponownie. Więc wydałemsudo start reconnect
.reconnect stop/waiting
była odpowiedź, ale nm nie uruchomił się ponownie. Musiałem dosudo service network-manager restart
tego, co zwykle robię. Czy zamiast tegorestart network-manager
byłoby coś takiegorestart service network-manager
? (BTW, wprowadziłem eth0, a nie etho (w przeciwieństwie do tego, co jest w moim poprzednim komentarzu))service network-manager restart
. Ciekawe, jaka jest wydajnośćstatus network-manager
twojego systemu? Jeśli to mówistop/waiting
(lub daje błąd) po ponownym uruchomieniu, musisz zmienić start na coś takiego jakstart on runlevel [2345]
i dodaćsleep 60
wcześniej.Szybkie i nieprzyzwoite obejście polega na napisaniu skryptu działającego
ping -i 5 google.com || service network-manager restart
jako root (możesz do tego napisać /etc/init.d/-daemon, ale ponieważ rozwiązanie jest BARDZO brudne, nie zrobiłbym tego)Ten skrypt uruchamiał ponownie menedżera sieci za każdym razem, gdy Google nie zostanie znaleziony, i sprawdza co pięć sekund.
źródło
Spróbuj wicd zamiast menedżera sieci, jest to zalecane w podobnym przypadku: https://bbs.archlinux.org/viewtopic.php?id=124443
Nie wiem, czy to rozwiąże problem, czy wicd obsługuje pppoe.
Utwórz kopię zapasową plików .deb na wszelki wypadek:
Oczyść menedżera sieci i zainstaluj WICD
Restart. Spróbuj połączyć się za pomocą WICD.
Jeśli coś pójdzie nie tak, po prostu wyczyść WICD i zainstaluj ponownie menedżera sieci:
źródło
alias nm='echo "password" | sudo -S service network-manager restart'
jako obejścia. Po trzecie, z twoich innych pomocnych linków wynika, że problem nie ma nic wspólnego z Ubuntu, ale jest „upstream”, więc zapytam, czy to pytanie powinno zostać zamknięte.Stworzyłem skrypt dla tego problemu:
Działa to dobrze, ale ten skrypt zajmuje zbyt dużo mojego procesora. Czy ktoś może mi pomóc w zmniejszeniu zużycia procesora?
źródło
Dlaczego odpowiadam na to pytanie?
Są to bardzo dobre odpowiedzi, ale wszystko jest napisane przy użyciu init lub upstart. Od teraz będziemy używać systemd, piszę lepszy skrypt i informacje. jak to zrobić.
Ale czy jest jakiś sposób?
Jest sposób. Wystarczy utworzyć skrypt monitorujący stan sieci i ponownie uruchomić Menedżera sieci na żądanie. Zbudujemy ten skrypt i usługę systemową, która zostanie uruchomiona wraz z systemem i będziemy monitorować stan sieci co 5 sekund, aby sprawdzić, czy jesteś online, czy nie.
Co powinienem zrobić?
Przede wszystkim musimy zainstalować narzędzie fping, wykonać jeden z testów połączenia (powrót fping „żyje”, jeśli połączenie jest możliwe, a „nie znaleziono adresu”, jeśli nie):
Teraz utworzymy skrypt monitorowania w naszym systemie. Utwórz plik w / usr / local / bin / o nazwie nm-watcher:
I edytuj go za pomocą nano lub preferowanego edytora tekstu:
Skopiuj i wklej ten skrypt w edytorze, zapisz i zamknij plik (jeśli używasz nano, podobnie jak w tym samouczku, użyj kolejno „CTRL + X”, „Y” i „ENTER”). Nie zapomnij zmienić wlan0 na interfejs, który chcesz monitorować wm-watcher:
Aby uruchomić ten skrypt, musimy go wykonać:
Teraz stworzymy usługę SystemD, w tym celu należy utworzyć i edytować plik nm-watcher.service w / etc / systemd / system /:
I umieść tę zawartość w pliku:
Spowoduje to utworzenie pliku usługi, który spowoduje, że SystemD wywoła skrypt, który utworzyliśmy przed każdym uruchomieniem, po ustanowieniu połączenia za pomocą network-manager.service.
Powinniśmy wiedzieć, aby umożliwić uruchomienie tej usługi przy użyciu:
I uruchom usługę, wpisując:
Aby sprawdzić, czy usługa jest uruchomiona, wpisz:
Jeśli masz jakiekolwiek problemy z usługą, możesz zobaczyć komunikaty debugowania za pomocą:
Czy powinienem robić inne rzeczy?
Nie, to wszystko, co jest potrzebne do wykonania tego zadania. Ten skrypt ma bardzo niewielki wpływ na wydajność systemu, jak widać na tym zrzucie ekranu:
źródło
Na moim starszym laptopie miałem złą kartę WiFi, która miała tendencję do rozłączania się z Wi-Fi, jeśli było dużo obciążenia (np. Pobieranie dużych plików itp.).
Utworzyłem prosty skrypt, aby sprawdzić, czy mój Internet jest nadal podłączony, a jeśli nie, uruchom ponownie menedżera sieci.
Utworzyłem cronjob root
sudo crontab -e
i ustawiałem go tak, aby co minutę (możesz to robić rzadziej, ale skrypt jest prostym pingiem, więc nie wymaga dużych zasobów), aby uruchamiał skrypt.Tak więc, jeśli moje Wi-Fi z jakiegoś powodu wyłączy się, wyłączy się tylko na około minutę, szczyty. Jeśli nie jesteś zaznajomiony
cron
, polecam przeczytać toźródło