Явное указание внешнего интерфейса у systemd-networkd-wait-online
Проблема
При нестандартной конфигурации сети, systemd-networkd-wait-online
отваливается с таймаутом.
В логах при этом можно найти что-то такое:
systemd-networkd-wait-online[...]: Event loop failed: Connection timed out
Само собой, сервисы, зависящие от systemd-networkd-wait-online
, не стартуюут.
Решение
Решение ситуации – явно указать внешний интерфейс, который должен быть поднят чтобы считать сеть рабочей. Сделать это можно, например, создав файлик /etc/systemd/system/systemd-networkd-wait-online.service.d/exec.conf
следующего содержания:
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online -i <interface-name>
Вместо <interface-name>
следует вставить название интерфейса, например, br0
.
Заодно это решает проблемы на системах с несколькими сетевыми интерфейсами, когда только один из них можно считать “основным”, и если он не поднялся – сети еще, в широком смысле слова, нет.