Verwenden von Ubuntu 11.10 (Unity 3D) und einer Kabel-Internetverbindung (DSL) ohne Router oder Modem.
Wenn ich meine Internetverbindung trenne, kann ich einfach die Verbindung wiederherstellen, indem ich auf das Netzwerkmanagersymbol klicke und eine Verbindung aus dem Dropdown-Menü auswähle, da meine Verbindungen sichtbar sind. Der Netzwerkmanager muss nicht neu gestartet werden.
Aber wenn die Internetverbindung von selbst unterbrochen wird , habe ich ein Terminal geöffnet und verwende es, sudo service network-manager restart
da im Dropdown-Menü des Netzwerkmanagers keine Verbindung angezeigt wird. Erst nach dem Befehl startet der Netzwerkmanager und stellt automatisch eine Verbindung her.
Gibt es eine Einstellung, damit der Netzwerkmanager nicht jedes Mal neu gestartet werden muss, wenn die Verbindung getrennt wird (im Gegensatz zu meiner Trennung, wenn kein Neustart erforderlich ist)?
Mit anderen Worten, ich möchte nicht, dass der Netzwerkmanager stoppt, solange ich den Computer benutze, unabhängig davon, ob meine Verbindung zum ISP unterbrochen wurde oder nicht.
Es ist keine große Sache, ein Terminal zu öffnen und den Befehl und das Kennwort einzugeben. Wenn Sie jedoch sicherstellen können, dass der Netzwerkmanager nicht aufhört, ist dies besser.
editiert vom 26.01.2012: Zeilen aus 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"
. Ich habe kein DSL, deshalb brauche ich Ihre Hilfe bei allen Befehlen und Ausgaben. Kommentieren Sie Ihre Ausgabe aus.nmcli -t -f TYPE,STATE dev
Antworten:
Hier ist ein Upstart-Skript, das Sie platzieren können
/etc/init/reconnect.conf
:Wenn Sie eine IP-Adresse für eth0 verlieren (konfigurieren Sie diese gegebenenfalls für Ihre Schnittstelle), wird der Netzwerkmanager-Job neu gestartet und die Konnektivität wiederhergestellt.
quelle
reconnect.conf
zu erstellen, die aufgerufen wird/etc/init
. Sie müssen nur eth0 in etwas anderes ändern, wenn es nicht korrekt ist.inet addr:
teil ist nur ein filter für grep und sollte nicht angerührt werden. Relevante Verbindungsnamen können über überprüft werdenifconfig
. Upstart liest diese Datei automatisch und Sie sollten dies tunsudo start reconnect
, um den Job in Gang zu bringen. Beim nächsten Neustart wird es automatisch gestartet.ifconfig
beginnt mit,etho
also werde ich das verwenden und dann,sudo start reconnect
wenn die Verbindung unterbrochen wird. Ich werde mit dem Ergebnis zurück posten. Vielen Dank!/etc/init/reconnect.conf
und neu gestartet. Als meine Verbindung einige Zeit nach dem Neustart unterbrochen wurde, wurde nm nicht neu gestartet. Also habe ich ausgestelltsudo start reconnect
.reconnect stop/waiting
war die Antwort, aber nm nicht neu gestartet. Ich musstesudo service network-manager restart
das tun, was ich normalerweise tue. Wäre stattdessenrestart network-manager
etwasrestart service network-manager
erforderlich? (Übrigens habe ich eth0 und nicht etho gesetzt (anders als in meinem vorherigen Kommentar))service network-manager restart
. Nur neugierig, was ist die Ausgabestatus network-manager
auf Ihrem System? Wenn diesstop/waiting
nach dem Neustart besagt (oder einen Fehler anzeigt), müssen Sie start auf so etwas wie ändernstart on runlevel [2345]
undsleep 60
vor while hinzufügen .Eine schnelle und schmutzige Umgehung besteht darin, ein Skript zu schreiben, das
ping -i 5 google.com || service network-manager restart
als root ausgeführt wird (Sie könnten dafür einen /etc/init.d/-daemon schreiben, aber da die Lösung SEHR schmutzig ist, würde ich das nicht tun).Dieses Skript startet den Netzwerkmanager jedes Mal neu, wenn Google nicht gefunden wird, und überprüft ihn alle fünf Sekunden.
quelle
Versuchen Sie es mit wicd anstelle von network-manager. In einem ähnlichen Fall wird dies empfohlen: https://bbs.archlinux.org/viewtopic.php?id=124443
Ich weiß nicht, ob es das Problem beheben wird oder ob wicd pppoe unterstützt.
Sichern Sie die .deb-Dateien, nur für den Fall:
Bereinigen Sie den Netzwerkmanager und installieren Sie wicd
Starten Sie neu. Versuchen Sie, eine Verbindung mit wicd herzustellen.
Wenn etwas schief geht, einfach wicd löschen und den Netzwerkmanager neu installieren:
quelle
alias nm='echo "password" | sudo -S service network-manager restart'
als Problemumgehung. Drittens haben Ihre anderen hilfreichen Links den Anschein, dass das Problem nichts mit Ubuntu zu tun hat, sondern "upstream" ist, und deshalb werde ich fragen, ob diese Frage geschlossen werden sollte.Ich habe ein Skript für dieses Problem erstellt:
Das funktioniert gut, aber dieses Skript beansprucht zu viel CPU. Kann mir jemand helfen, die CPU-Auslastung zu senken?
quelle
Warum beantworte ich diese Frage?
Es gibt sehr gute Antworten, aber alles wird mit init oder upstart geschrieben. Ab sofort verwenden wir systemd, ich schreibe ein besseres Skript und Informationen. wie das geht.
Aber gibt es einen Weg?
Es gibt einen Weg. Sie müssen lediglich ein Skript erstellen, das Ihren Netzwerkstatus überwacht, und Network Manager bei Bedarf neu starten. Wir werden dieses Skript und einen systemd-Dienst erstellen, der mit dem System gestartet wird und Ihren Netzwerkstatus alle 5 Sekunden überwacht, um festzustellen, ob Sie online sind oder nicht.
Was soll ich machen?
Zunächst müssen wir das fping-Tool installieren, um einen der Verbindungstests durchzuführen (fping return "lebt", wenn eine Verbindung möglich ist, und "address not found", wenn nicht):
Jetzt erstellen wir das Monitor-Skript auf unserem System. Erstellen Sie eine Datei unter / usr / local / bin / mit dem Namen nm-watcher:
Und bearbeiten Sie es mit Nano oder Ihrem bevorzugten Texteditor:
Kopieren Sie dieses Skript und fügen Sie es in den Editor ein. Speichern und schließen Sie die Datei (wenn Sie nano verwenden, wie in diesem Tutorial, drücken Sie nacheinander "STRG + X" "Y" und "EINGABE"). Vergessen Sie nicht, wlan0 auf die Schnittstelle zu ändern, die wm-watcher überwachen soll:
Um dieses Skript auszuführen, müssen wir es ausführbar machen:
Jetzt erstellen wir den SystemD-Dienst. Dazu müssen Sie die Datei nm-watcher.service unter / etc / systemd / system / erstellen und bearbeiten:
Und fügen Sie diesen Inhalt in die Datei ein:
Dadurch wird die Servicedatei erstellt, die bewirkt, dass SystemD das zuvor erstellte Skript bei jedem Start aufruft, nachdem eine Verbindung mit network-manager.service hergestellt wurde.
Wir sollten wissen, dass dieser Dienst ausgeführt werden kann mit:
Und starten Sie den Dienst, indem Sie Folgendes eingeben:
So überprüfen Sie, ob der Dienst ausgeführt wird:
Wenn Sie Probleme mit dem Dienst haben, können Sie die Debug-Meldungen folgendermaßen anzeigen:
Soll ich etwas anderes machen?
Nein, das ist alles, was benötigt wird, um diese Aufgabe zu erfüllen. Dieses Skript hat sehr geringe Auswirkungen auf die Systemleistung, wie Sie auf diesem Screenshot sehen können:
quelle
Auf meinem älteren Laptop hatte ich eine schlechte WLAN-Karte, die dazu neigte, sich vom WLAN zu trennen, wenn viel geladen war (z. B. Herunterladen großer Dateien usw.).
Ich habe ein einfaches Skript erstellt, um zu überprüfen, ob noch eine Internetverbindung besteht. Wenn dies nicht der Fall ist, starten Sie den Netzwerkmanager neu.
Ich habe einen Root-Cronjob mit erstellt
sudo crontab -e
und diesen so eingestellt, dass er jede Minute ausgeführt wird (Sie können dies weniger häufig tun, aber das Skript ist ein einfacher Ping- Befehl , sodass es nicht ressourcenintensiv ist).Also, wenn mein WiFi aus irgendeinem Grund ausgehen würde, würde es immer nur für ungefähr eine Minute auf einmal ausgehen, ganz oben. Wenn Sie nicht vertraut sind
cron
, empfehle ich, dies zu lesenquelle