Trwa uruchamianie zadania oczekiwania na konfigurację sieci. Serwer Ubuntu 17.10

39

Właśnie zainstalowałem serwer Ubuntu na moim laptopie i wszystko działa dobrze, z wyjątkiem faktu, że podczas rozruchu, jeśli laptop nie jest podłączony do sieci Ethernet lub w zasięgu mojego Wi-Fi, pojawia się komunikat „Uruchomione zadanie startowe czeka na połączenie z siecią być skonfigurowanym ”, który pozostaje przez około 2 minuty. Szukałem rozwiązań online i próbowałem:

  • Wyłącz menedżera sieci
  • Edytuj ustawienia limitu czasu w /etc/systemd/system.conf
  • Wyłącz systemd.networkd-wait-online.service

Żadne z tych rozwiązań nie działało dla mnie. Jakieś możliwe poprawki?

vlad27
źródło
To są poprawki. Czy po każdej zmianie przeładowałeś NM / systemd? Odczytują tylko pliki konfiguracyjne na początku.
user535733,
Tak, użyłem systemctl daemon-reload, wciąż ten sam wynik
vlad27

Odpowiedzi:

39

Posługiwać się

systemctl disable systemd-networkd-wait-online.service

wyłączyć usługę oczekiwania online, aby system nie czekał na połączenie sieciowe, i użyć

systemctl mask systemd-networkd-wait-online.service

aby zapobiec uruchomieniu usługi, jeśli zażąda tego inna usługa (usługa jest dowiązana symbolicznie /dev/null).

Mr.Ecco
źródło
Co oznacza maskowanie w tym kontekście ?.
Jaime Hablutzel
Zadziałało. :) Czy możesz opisać, co tutaj zrobiliśmy? Jestem po prostu ciekaw.
SD.
3
@SD @ jaime-hablutzel Aby uzyskać wyjaśnienie, patrz askubuntu.com/a/816378/445084systemctl mask . Krótko mówiąc: maskowanie usługi przekierowuje ją /dev/null, zapobiegając ponownemu włączeniu w przypadku, gdy jest to wymagane przez inną usługę.
timelmer
31

Nie maskuj ani nie wyłączaj usługi systemowej.

Edytuj /etc/netplan/01-netcfg.yamli dodawaj optional: truedo dowolnych urządzeń, które nie zawsze są dostępne.

sudo netplan apply
użytkownik914826
źródło
1
W moim przypadku działało to dopiero po ustawieniu wszystkich interfejsów na opcjonalne: true
duli
1
W jaki sposób przewyższa to wyłączenie usługi systemowej?
Andreas Hartmann
Dla mnie z Ubuntu 18.04 na Vmware odpowiednim plikiem był /etc/netplan/50-cloud-init.yaml; dodawanie opcjonalne: prawda i ponowne uruchomienie działało! Wątek związany: askubuntu.com/questions/1090631/... . Powiązane informacje na temat netplan: linux.com/learn/intro-to-linux/2018/9/… (Konfigurowanie DHCP)
Snidhi Sofpro
Thisx pracował dla mnie z Ubuntu 18.04.03 LTS (Desktop), gdzie wyłączyłem NetworkManager i skonfigurowałem networkd z netplan, i skonfigurowałem br0 do wirtualizacji kdvm / qenu i buforowanie dns z dnsmaquerade. Nowsze nie znalazły, co poszło nie tak z moimi ustawieniami, ale boje trwają ponad 2 minuty bez opcjonalnego: true-setting. Przy tym ustawieniu rozruch jest normalny, podobnie jak funkcjonalność również w sieci.
Reijo Korhonen
9

Oznacza systemd-networkd-wait-online.serviceto, że wisi. Jest w nim kilka znanych błędów. Sprawdź, jakie usługi chcesz network-online.target:

systemctl show -p WantedBy network-online.target

Możesz wyłączyć te usługi, jeśli chcesz. W przeciwnym razie może być konieczne zamaskowanie usługi, jak wskazał Mr.Ecco .

Duncan X Simpson
źródło
2

Maskowanie systemd-networkd-wait-online.service, jak sugerowano w innych odpowiedziach, może pomóc w prostych konfiguracjach, ale nie rozwiązuje problemu. Jeśli zamaskujesz usługę, wszystkie inne usługi zależne od niej również się nie powiodą. Oznacza to, że wszystkie usługi potrzebne do oczekiwania, aż sieć będzie w trybie online, przestaną działać.

Wystąpił ten problem, ponieważ używam dynamicznej konfiguracji przełączania awaryjnego dla moich laptopów z łączeniem przewodowego (enp9s0) i bezprzewodowego (wlp12s0) interfejsu, który jest używany jako slave dla głównego interfejsu bond0 . Dokładnie taką samą sytuację masz w przypadku korzystania z mostu ( br0 z interfejsami slave). Tylko główne interfejsy bond0 lub br0 zostaną podłączone , ale nie urządzenia slave, więc systemd-networkd-wait-online.servicezawiodą na urządzeniach slave.

Rozwiązaniem tego problemu jest modyfikacja usługi i sprawdzanie tylko interfejsów, które powinny przejść do trybu online. Znajdziesz z:

~$ 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

Program systemd-networkd-wait-online ma parametr do testowania określonych interfejsów. Sprawdź za pomocą /lib/systemd/systemd-networkd-wait-online --help. Zrobię więc zrzut pliku, aby zmodyfikować usługę:

~$ sudo systemctl edit systemd-networkd-wait-online.service

W pustym edytorze wstaw te instrukcje, oczywiście z interfejsem, zapisz je i zamknij edytor:

[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online --interface=bond0 --quiet

Puste ExecStart=jest ważne, ponieważ wyłącza „stare” polecenie. Możesz sprawdzić więcej niż w interfejsie (spójrz na pomoc).

Ingo
źródło
Znakomita, bardzo dobra odpowiedź, to był dokładnie mój problem
kaklon