Ein Startjob wird ausgeführt, um auf die Konfiguration des Netzwerks zu warten. Ubuntu-Server 17.10

39

Ich habe gerade den Ubuntu-Server auf meinem Laptop installiert und alles funktioniert einwandfrei, bis auf die Tatsache, dass beim Booten, wenn der Laptop nicht mit dem Ethernet verbunden ist oder sich in Reichweite meines WLANs befindet, die Meldung "Ein Startjob wird ausgeführt, um auf das Warten auf das Netzwerk zu warten konfiguriert werden ", die für ca. 2 Minuten bleibt. Ich habe online nach Lösungen gesucht und versucht:

  • Deaktivieren Sie den Netzwerkmanager
  • Bearbeiten Sie die Timeout-Einstellungen in /etc/systemd/system.conf
  • Deaktivieren Sie systemd.networkd-wait-online.service

Keine dieser Lösungen hat bei mir funktioniert. Irgendwelche möglichen Korrekturen?

vlad27
quelle
Das sind die Lösungen. Haben Sie nach jeder Änderung NM / systemd neu geladen? Sie lesen ihre Konfigurationsdateien nur beim Start.
user535733
Ja, ich habe systemctl daemon-reload verwendet, immer noch das gleiche Ergebnis
vlad27

Antworten:

39

Verwenden

systemctl disable systemd-networkd-wait-online.service

Deaktivieren Sie den Wait-Online-Dienst, um zu verhindern, dass das System auf eine Netzwerkverbindung wartet, und verwenden Sie

systemctl mask systemd-networkd-wait-online.service

um zu verhindern, dass der Dienst gestartet wird, wenn er von einem anderen Dienst angefordert wird (mit dem der Dienst verknüpft ist /dev/null).

Mr.Ecco
quelle
Was bedeutet in diesem Zusammenhang Maskieren ?
Jaime Hablutzel
Es funktionierte. :) Kannst du bitte beschreiben, was wir hier gemacht haben? Ich bin nur neugierig.
SD.
3
@SD @ jaime-hablutzel Eine Erklärung von finden Sie unter askubuntu.com/a/816378/445084systemctl mask . Kurz gesagt: Das Maskieren eines Dienstes leitet ihn weiter /dev/nullund verhindert, dass er erneut aktiviert wird, falls er von einem anderen Dienst benötigt wird.
Timelmer
31

Maskieren oder deaktivieren Sie den systemd-Dienst nicht.

Bearbeiten /etc/netplan/01-netcfg.yamlSie optional: trueGeräte, die möglicherweise nicht immer verfügbar sind, und fügen Sie sie hinzu.

sudo netplan apply
user914826
quelle
1
In meinem Fall hat es nur funktioniert, nachdem alle Schnittstellen auf optional gesetzt wurden: true
duli
1
Inwiefern ist dies der Deaktivierung des systemd-Dienstes überlegen?
Andreas Hartmann
Für mich mit Ubuntu 18.04 auf Vmware war die entsprechende Datei /etc/netplan/50-cloud-init.yaml; optionales hinzufügen: true & neustart funktioniert! Zugehöriger Thread: askubuntu.com/questions/1090631/… . Weitere Informationen zu netplan: linux.com/learn/intro-to-linux/2018/9/… (DHCP konfigurieren)
Snidhi Sofpro
Thisx arbeitete für mich mit Ubuntu 18.04.03 LTS (Desktop), wo ich NetworkManager deaktiviert und networkd mit netplan eingerichtet und br0 für kdvm / qenu-Virtualisierung und DNS-Caching mit dnsmaquerade eingerichtet habe. Neuere haben nicht gefunden, was mit meinen Einstellungen schief geht, aber Booys dauern über 2 Minuten ohne optional: true -Einstellung. Mit dieser Einstellung ist das Booten normal und die Funktionalität auch mit dem Netzwerk.
Reijo Korhonen
9

Das heißt systemd-networkd-wait-online.servicehängt. Es gibt ein paar bekannte Fehler. Prüfen Sie, welche Dienste gewünscht werden network-online.targetmit:

systemctl show -p WantedBy network-online.target

Sie können diese Dienste deaktivieren, wenn Sie möchten. Andernfalls müssen Sie den Dienst möglicherweise wie von Mr.Ecco angegeben maskieren .

Duncan X Simpson
quelle
2

systemd-networkd-wait-online.serviceWie in anderen Antworten vorgeschlagen, kann die Maskierung bei einfachen Setups hilfreich sein, das Problem wird jedoch nicht behoben. Wenn Sie den Dienst maskieren, schlagen auch alle anderen Dienste, die davon abhängen, fehl. Das bedeutet, dass alle Dienste, die warten müssen, bis das Netzwerk online ist, fehlschlagen.

Ich laufe in dieses Problem , weil ich ein dynamisches Failover-Setup für meine Laptops mit verwenden Bindung der verdrahteten (enp9s0) und Wireless (wlp12s0) Schnittstelle , die als Sklaven für die Haupt - Schnittstelle verwendet werden bond0 . Genau die gleiche Situation haben Sie, wenn Sie eine Bridge verwenden ( br0 mit Slave-Schnittstellen). Nur die Hauptschnittstellen bond0 oder br0 werden online geschaltet , nicht systemd-networkd-wait-online.servicejedoch die Slaves.

Die Lösung für dieses Problem besteht darin, den Dienst zu ändern und nur die Schnittstellen zu überprüfen, die online geschaltet werden sollen. Sie finden mit:

~$ sudo systemctl cat systemd-networkd-wait-online.service | grep --after-context=3 '\[Service\]'
[Service]
Type=oneshot
ExecStart=/lib/systemd/systemd-networkd-wait-online
RemainAfterExit=yes

Das Programm systemd-networkd-wait-online hat einen Parameter zum Testen bestimmter Schnittstellen. Überprüfen Sie mit /lib/systemd/systemd-networkd-wait-online --help. Also lege ich eine Datei an, um den Dienst zu ändern:

~$ sudo systemctl edit systemd-networkd-wait-online.service

In den leeren Editor fügen Sie diese Anweisungen natürlich mit Ihrer Oberfläche ein, speichern Sie sie und beenden Sie den Editor:

[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=bond0 --quiet

Das Leerzeichen ExecStart=ist wichtig, da es den "alten" Befehl deaktiviert. Sie können nach mehr als einer Benutzeroberfläche suchen (siehe Hilfe).

Ingo
quelle
Ausgezeichnete, sehr gute Antwort, das war genau mein Problem
Kaklon