Маскування systemd-networkd-wait-online.service
, як пропонується в інших відповідях, може допомогти у простих налаштуваннях, але це не виправить проблему. Якщо ви замаскуєте послугу, всі інші сервіси залежно від неї також вийдуть з ладу. Це означає, що всі сервіси, які потрібно зачекати, поки мережа не буде в мережі, вийдуть з ладу.
Я зіткнувся з цією проблемою, оскільки використовую динамічну настройку відключення для своїх ноутбуків із з'єднанням дротового (enp9s0) та бездротового (wlp12s0) інтерфейсу, який використовується як раби для основного інтерфейсу bond0 . Точно така ж ситуація у вас, якщо ви використовуєте міст ( br0 з підлеглий інтерфейсами). Тільки основні інтерфейси bond0 або br0 будуть доступні в Інтернеті, але не раби, тому невідоміsystemd-networkd-wait-online.service
.
Вирішення цієї проблеми полягає в тому, щоб змінити сервіс і перевірити лише інтерфейси, які мають працювати в Інтернеті. Ви знайдете:
~$ 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
У програмі systemd-networkd-wait-online є параметр для тестування конкретних інтерфейсів. Перевірте /lib/systemd/systemd-networkd-wait-online --help
. Тому я роблю падіння файлу, щоб змінити послугу:
~$ sudo systemctl edit systemd-networkd-wait-online.service
У порожній редактор вставляйте ці висловлювання, звичайно, зі своїм інтерфейсом, зберігайте їх як вийти з редактора:
[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=bond0 --quiet
Порожній ExecStart=
важливий, оскільки він вимикає команду "стара". Ви можете перевірити більше, ніж на інтерфейсі (дивіться довідку).