Wie behebt man Verbindungsverluste in VM?

Wie behebt man Verbindungsverluste in VM?

Meine virtuelle Maschine verliert unter Linux manchmal die Internetverbindung und ich muss ständig verbunden bleiben. Daher habe ich das folgende Skript geschrieben:

#!/bin/bash 
wget -q --tries=10 --timeout=20 --spider http://google.com 
if [[ $? -ne 0 ]]; then 
    service network-manager restart
fi

Wenn ich dieses Skript in der Konsole ausführe, funktioniert es, aber wenn ich eins verwende, cronerhalte ich:

network-manager: unrecognized service

Was kann ich tun, damit dies funktioniert, oder welcher andere Ansatz könnte mir helfen?

---------------- LÖSUNG ----------------

Um zu erfahren, warum das funktioniert, habe ich es in der Konsole gestartet, aber nicht während einer Aufgabe, die cronich in der Konsole ausgeführt habe:

echo $PATH

Dann wurde angezeigt:

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Also bearbeite ich mein Skript wie folgt:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

wget -q --tries=10 --timeout=20 --spider http://google.com 
if [[ $? -ne 0 ]]; then 
    service network-manager restart
fi

Und das funktioniert jetzt!

Antwort1

Angenommen, Sie verwenden eine Linux Mint-ähnliche Distribution ...

Es klingt so, als ob das „Service“-Programm kein auszuführendes „Network-Manager“-Skript finden kann. Es sucht in /etc/init oder /etc/init.d, also können Sie dort nachsehen, was verfügbar ist.

Oder sehen Sie nach, ob die automatische Vervollständigung Ihnen weiterhilft (meiner Meinung nach einfacher). Öffnen Sie ein Terminal und geben Sie Folgendes ein:

service net

Geben Sie es dann TABmehrmals ein. Sie sollten einen automatisch vervollständigten Namen wie „networkign“ erhalten und sogar einige Optionen sehen, die Sie verwenden können, wie:

$ service networking 
force-reload  reload        restart       start         stop   

Sie können es also mit Folgendem versuchen (ist möglicherweise erforderlich, sudowenn das Skript nicht bereits als Root ausgeführt wird):

service networking restart

Sie können auch etwa pingjede Minute eine Site wie Google aufrufen, um zu prüfen, ob das Netzwerk noch aktiv ist, anstatt zu versuchen, es herunterzuladen.


Versuchen Sie, nach einem VM-Fehler oder seltsamen Einstellungen zu suchen. Normalerweise sollte die Netzwerkverbindung nicht verloren gehen, es sei denn, der Hostcomputer verliert sie ...

verwandte Informationen