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

40

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

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

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

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

Ответы:

40

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

systemctl disable systemd-networkd-wait-online.service

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

systemctl mask systemd-networkd-wait-online.service

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

Mr.Ecco
источник
Что значит маскировка в этом контексте?
Хайме Хаблутцель
Это сработало. :) Можете ли вы описать, что мы сделали здесь? Мне просто интересно.
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
user914826
источник
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