Le masquage systemd-networkd-wait-online.service
, comme suggéré dans d'autres réponses, peut aider dans les configurations simples mais ne résout pas le problème. Si vous masquez le service, tous les autres services qui en dépendent échoueront également. Cela signifie que tous les services nécessaires pour attendre que le réseau soit en ligne échoueront.
Je rencontre ce problème car j'utilise une configuration de basculement dynamique pour mes ordinateurs portables avec la liaison des interfaces filaire (enp9s0) et sans fil (wlp12s0) utilisées comme esclaves pour l'interface principale bond0 . Exactement la même situation si vous utilisez un pont ( br0 avec des interfaces esclaves). Seules les interfaces principales bond0 ou br0 seront connectées , mais pas les esclaves, systemd-networkd-wait-online.service
elles échoueront.
La solution à ce problème consiste à modifier le service et à ne rechercher que les interfaces devant être mises en ligne. Vous trouverez avec:
~$ 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
Le programme systemd-networkd-wait-online a un paramètre pour tester des interfaces spécifiques. Vérifiez avec /lib/systemd/systemd-networkd-wait-online --help
. Je crée donc un fichier dans le fichier pour modifier le service:
~$ sudo systemctl edit systemd-networkd-wait-online.service
Dans l'éditeur vide, insérez ces instructions, bien sûr avec votre interface, enregistrez-les et quittez l'éditeur:
[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=bond0 --quiet
Le vide ExecStart=
est important car il désactive la "vieille" commande. Vous pouvez vérifier plus que sur l'interface (consultez l'aide).