Задание запуска выполняется для ожидания настройки сети. Ubuntu сервер 17.10


40

Я только что установил сервер Ubuntu на моем ноутбуке, и все работает нормально, за исключением того факта, что при загрузке, если ноутбук не подключен к Ethernet или в зоне действия моего Wi-Fi, я получаю это сообщение «Запускается задание для ожидания подключения к сети быть настроенным ", который остается около 2 минут. Я искал онлайн решения и попытался:

  • Отключить сетевой менеджер
  • Отредактируйте настройки времени ожидания в /etc/systemd/system.conf
  • Отключить systemd.networkd-wait-online.service

Ни одно из этих решений не помогло мне. Любые возможные исправления?


Это исправления. После каждого изменения вы перезагружали NM / systemd? Они только читают свои файлы конфигурации при запуске.
user535733

Да, я использовал systemctl daemon-reload, результат тот же
vlad27

Ответы:


40

использование

systemctl disable systemd-networkd-wait-online.service

отключить службу ожидания в режиме онлайн, чтобы система не ожидала подключения к сети, и использовать

systemctl mask systemd-networkd-wait-online.service

запретить запуск службы по запросу другой службы (служба имеет символическую ссылку /dev/null).


Что значит маскировка в этом контексте?
Хайме Хаблутцель

Это сработало. :) Можете ли вы описать, что мы сделали здесь? Мне просто интересно.
SD.

3
@SD @ jaime-hablutzel См. Askubuntu.com/a/816378/445084 для объяснения systemctl mask. Короче говоря: маскировка службы перенаправляет ее /dev/null, предотвращая ее повторное включение в случае, если это требуется другой службой.
таймер

31

Не маскируйте и не отключайте службу systemd.

Отредактируйте /etc/netplan/01-netcfg.yamlи добавьте optional: trueна любые устройства, которые не всегда могут быть доступны.

sudo netplan apply

1
В моем случае это сработало только после установки всех интерфейсов на необязательные: true
duli

1
Чем это лучше, чем отключение службы systemd?
Андреас Хартманн

Для меня с Ubuntu 18.04 на Vmware соответствующий файл был /etc/netplan/50-cloud-init.yaml; добавление необязательно: правда и перезагрузка сработала! Связанная тема: askubuntu.com/questions/1090631/… . Информация по теме на netplan: linux.com/learn/intro-to-linux/2018/9/… (Настройка DHCP)
Снидхи Софпро

Thisx работал для меня с Ubuntu 18.04.03 LTS (Desktop), где я отключил NetworkManager и настроил networkd с помощью netplan, а также настроил br0 для виртуализации kdvm / qenu и кэширования dns с помощью dnsmaquerade. Более новые не нашли, что идет не так с моими настройками, но загрузка занимает более 2 минут без опционального: true -setting. С этой настройкой загрузка нормальна, как и функциональность с сетью.
Рейо Корхонен

9

Это значит systemd-networkd-wait-online.serviceвисит. Есть несколько известных ошибок с этим. Проверьте, какие услуги нужны network-online.targetс:

systemctl show -p WantedBy network-online.target

Вы можете отключить эти службы, если хотите. В противном случае вам, возможно, придется замаскировать услугу, как указал г-н Экко .


2

Маскирование 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=значение важно, потому что оно отключает «старую» команду. Вы можете проверить больше, чем на интерфейсе (посмотрите на помощь).


Отлично, очень хороший ответ, это была именно моя проблема
kaklon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.