systemd-networkd-wait-online.service
Wie 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.service
jedoch 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).