O mascaramento systemd-networkd-wait-online.service
, conforme sugerido em outras respostas, pode ajudar em configurações simples, mas não resolve o problema. Se você mascarar o serviço, todos os outros serviços, dependendo dele, também falharão. Isso significa que todos os serviços necessários para esperar até que a rede esteja online falharão.
Eu me deparo com esse problema porque uso uma configuração dinâmica de failover para meus laptops com a ligação das interfaces com fio (enp9s0) e sem fio (wlp12s0) usadas como escravos para a interface principal bond0 . Exatamente a mesma situação que você tem se usar uma ponte ( br0 com interfaces escravas). Somente as interfaces principais bond0 ou br0 ficarão online, mas não os escravos, portanto systemd-networkd-wait-online.service
, falharão nos escravos.
A solução para esse problema é modificar o serviço e verificar apenas as interfaces que devem ficar online. Você encontrará com:
~$ 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
O programa systemd-networkd-wait-online possui um parâmetro para testar interfaces específicas. Verifique com /lib/systemd/systemd-networkd-wait-online --help
. Então eu faço uma queda no arquivo para modificar o serviço:
~$ sudo systemctl edit systemd-networkd-wait-online.service
No editor vazio, insira essas instruções, é claro com sua interface, salve-as e saia do editor:
[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=bond0 --quiet
O vazio ExecStart=
é importante porque desabilita o comando "antigo". Você pode verificar mais do que na interface (veja a ajuda).