Ich habe eine Ubuntu-Maschine, auf der eine Software ausgeführt wird, die Internet benötigt. Manchmal schlägt das WLAN jedoch fehl (z. B. Neustart des Routers) und findet das Netzwerk nicht wieder, bis ich den Neustart des Netzwerkmanagers manuell durchführe oder das WLAN aus- und wieder einschalte, um es zu finden.
Gibt es eine Möglichkeit, einen Cron-Job oder einen Supervisord-Job auszuführen, um die Konnektivität zu überwachen, und wenn das Netzwerk nicht gefunden werden kann, um den Netzwerkmanager-Dienst neu zu starten und eine Verbindung zu dieser bestimmten SSID herzustellen?
networking
wireless
cron
Blauer Geist
quelle
quelle
Antworten:
Ich denke, dies könnte an einem neuen Netzwerkmanager-Fehler liegen, da dieses Problem erst seit kurzem auftritt - ich denke, nach dem Upgrade auf Ubuntu 15.04.
Es scheint, dass ich es geschafft habe, dieses Problem vorübergehend zu lösen, um dieses Problem zu umgehen:
~/.bin/WiFi-Keep-Connected
mit folgendem Inhalt:~/.config/autostart/KeepWifiConnected.desktop
mit folgendem Inhalt:Hinweis: Sie müssen Ihren Benutzernamen in den
Exec=
oben angegebenen Pfad eingeben .NB: Manchmal reicht es nicht aus, Wi-Fi auf diese Weise neu zu starten. In diesem Fall muss ich Network Manager neu starten, indem ich diesen Befehl ein- oder sogar zweimal über das Terminal eingebe:
sudo service network-manager restart
Daher ist es möglicherweise besser , das obige Skript (nur für den Fall) wie folgt zu ändern:
quelle
Ich weiß nicht warum, aber wie Sie bereits erwähnt haben, findet der Netzwerkmanager das Netzwerk manchmal nicht wieder, wenn das WLAN ausfällt.
Ich denke, dass das Problem darin besteht, dass der Netzwerkmanager nach einem WLAN-Verbindungsfehler die WLAN-Liste nicht aktualisiert (und es scheint, dass der Netzwerkmanager das problematische Netzwerk verbirgt). Der Netzwerkmanager verfügt nicht über eine Menüoption zum erneuten Scannen. Durch Deaktivieren und Aktivieren des Kontrollkästchens für die drahtlose Verbindung im Menü des Netzwerkmanagers wird kein neuer WLAN-Scan erzwungen (wie beim Neustart des Dienstes).
Wenn der Netzwerkmanager meine drahtlose Verbindung verliert und mein WLAN nicht wieder findet (und ich wusste, dass das WLAN funktioniert), führe ich den folgenden Befehl aus:
Es führt einen WLAN-Scan auf der wlan0-Schnittstelle durch (wlan0 ist der Name der drahtlosen Schnittstelle in meinem Laptop) und zeigt Ihnen die verfügbaren drahtlosen Netzwerke an. Als Nebeneffekt aktualisiert der Netzwerkmanager automatisch seine Liste und findet das verlorene Netzwerk.
Ich bevorzuge es, den Befehl manuell auszuführen, wenn dieses Problem auftritt (eine erneute Netzwerkverbindung stellt keine Wiederaufnahme der Kommunikation sicher, und einige Programme müssen neu gestartet werden).
Wie Sie bereits erwähnt haben, können Sie dies tun, ohne die Konnektivität zu testen (der Scanvorgang aktualisiert Ihre WLAN-Liste, schließt jedoch nicht Ihre aktuelle drahtlose Verbindung, wenn Sie verbunden sind).
Wenn Sie möchten, können Sie die Konnektivität mit Ping oder iwconfig testen. Wenn Sie nicht verbunden sind, starten Sie den Scan.
Etwas wie:
Denken Sie jedoch daran, dass dieses Skript mit Root-Rechten ausgeführt oder ausgeführt werden muss. Es wird nur 1 Ping mit 1 Sekunde Timeout gesendet.
quelle
Ich denke, das Problem ist, dass die Verbindung aufgrund von Konnektivitätsproblemen des Routers unterbrochen wird. Ein Neustart des Netzwerkmanagers konnte nicht helfen, wenn der Router selbst Probleme hat. Sie können vielmehr ein Skript erstellen, mit dem der Prozess, auf dem die Software ausgeführt wird, mithilfe von SIGSTOP angehalten wird, wenn die Verbindung unterbrochen wird, und erneut ausgelöst werden, um die Verwendung von SIGCONT fortzusetzen, wenn das Netzwerk verfügbar wird. Fügen Sie das Skript zu Ihren Cron-Jobs hinzu und planen Sie, dass es jede Minute ausgeführt wird.
Als Referenz: http://hints.macworld.com/article.php?story=20030915193440334
Hoffe das hilft.
quelle