Некоторое время назад я настроил службу systemd для запуска после подключения сети. согласно документации.
Это файл модуля:
[Ед. изм]
Description=Обновить список зеркал Pacman с помощью Reflector.
Документация=https://wiki.archlinux.org/index.php/Reflector
Хочет=network-online.target
After=network-online.target nss-lookup.target
[Оказание услуг]
Тип = ваншот
ExecStart=/usr/bin/reflector @/etc/xdg/reflector/reflector.conf
CacheDirectory=отражатель
CapabilityBoundingSet=~CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_IPC_OWNER CAP_NET_ADMIN CAP_SYS_TIME CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE CAP_KILL CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_RESOURCE CAP_MAC_ADMIN CAP_MAC_OVERRIDE CAP_SYS_BOOT CAP_LINUX_IMMUTABLE CAP_IPC_LOCK CAP_SYS_CHROOT CAP_BLOCK_SUSPEND CAP_LEASE CAP_SYS_PACCT CAP_SYS_TTY_CONFIG CAP_WAKE_ALARM
Среда=XDG_CACHE_HOME=/var/кэш/рефлектор
LockPersonality=true
MemoryDenyWriteExecute=true
Ноньюпривилегес=истина
Частные устройства = истина
PrivateTmp=истина
Приватусерс = истина
ProtectClock=истина
Протектконтролграупс=истина
ПротектХоме=истина
ProtectHostname=истина
Протекткернелтунаблес=истина
Протекткернеллогс=истина
Протекткернелмодулес = истина
ProtectSystem=строгий
ReadOnlyPaths=/etc/xdg/reflector/reflector.conf
ReadWritePaths=/etc/pacman.d/mirrorlist
УдалитьIPC=истина
RestrictAddressFamilies=~AF_AX25 AF_IPX AF_APPLETALK AF_X25 AF_DECnet AF_KEY AF_NETLINK AF_PACKET AF_RDS AF_PPPOX AF_LLC AF_IB AF_MPLS AF_CAN AF_TIPC AF_BLUETOOTH AF_ALG AF_VSOCK AF_KCM AF_UNIX AF_XDP
Рестриктнамеспейс=истина
Ограничение в реальном времени = истина
ОграничениеSUIDSGID=истина
SystemCallArchitectures=родной
SystemCallFilter=@системный-сервис
SystemCallFilter=~@resources @привилегированный
Маска = 177
[Установить]
WantedBy=многопользовательская.цель
Пер документация, служба уже должна быть правильно настроена, чтобы дождаться установления сетевого подключения (т. е. я вошел в систему, NetworkManager подключился к WiFi, и системе был назначен IP-адрес).
сеть-online.target
- это цель, которая активно ожидает, пока сеть не будет «работающей», где определение «работающей» определяется программным обеспечением управления сетью. Обычно это указывает на настроенный маршрутизируемый IP-адрес. Его основная цель — активная задержка активации служб до тех пор, пока сеть не будет настроена.
Я также убедился, что NetworkManager-wait-online.service
включен.
$ systemctl включен NetworkManager-wait-online.service systemd-networkd-wait-online.service
включено
Отключено
Вместо службы, ожидающей запуска до тех пор, пока не будет установлено подключение к Интернету, я вижу ошибку на системной консоли почти сразу после того, как вижу приглашение для входа в систему.
05 июля, 07:40:02 gadget systemd[1]: запуск обновления списка зеркал Pacman с помощью Reflector....
05 июля 07:40:03 гаджет-рефлектор[564]: ошибка: не удалось получить данные о статусе зеркала: URLError: <ошибка открытия URL [Errno -3] Временный сбой в разрешении имени>
05 июля, 07:40:03 гаджет systemd[1]: Reflector.service: основной процесс завершен, код = выход, статус = 1/FAILURE
05 июля, 07:40:03 гаджет systemd[1]: Reflector.service: Ошибка с результатом «код выхода».
05 июля, 07:40:03 гаджет systemd[1]: не удалось запустить обновление списка зеркал Pacman с помощью Reflector..
Поскольку он должен ждать подключения сети и доступности DNS, я также проверил статус NetworkManager-wait-online.service
, сеть-online.target
и nss-lookup.target
:
$ systemctl статус NetworkManager-wait-online.service
â NetworkManager-wait-online.service — диспетчер сети ждет онлайн
Загружено: загружено (/usr/lib/systemd/system/NetworkManager-wait-online.service; включено; предустановка поставщика: отключена)
Активен: активен (закрыт) с понедельника 05.07.2021 07:40:02 CEST; 44 мин назад
Документы: man:nm-online(1)
Основной PID: 544 (код=выход, статус=0/УСПЕХ)
Заданий: 0 (лимит: 38321)
Память: 0B
ЦП: 0
CGroup: /system.slice/NetworkManager-wait-online.service
05 июля, 07:40:02 gadget systemd[1]: Запуск Network Manager Подождите онлайн...
05 июля, 07:40:02 gadget systemd[1]: Готово Network Manager Подождите онлайн.
$ systemctl статус network-online.target
â network-online.target — Сеть находится в сети
Загружено: загружено (/usr/lib/systemd/system/network-online.target; статично)
Активен: активен с понедельника 05.07.2021 07:40:02 CEST; 1ч 5мин назад
Документы: man:systemd.special(7)
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
05 июля, 07:40:02 гаджет systemd[1]: достигнута целевая сеть в сети.
$ systemctl статус nss-lookup.target
○ nss-lookup.target — Поиск имени хоста и сети
Загружено: загружено (/usr/lib/systemd/system/nss-lookup.target; статично)
Активный: неактивный (мертвый)
Документы: man:systemd.special(7)
Мне кажется странным, что NetworkManager-wait-online.service
отчеты заканчиваются сразу после запуска. Есть ли что-то еще, что мне нужно настроить? Это ошибка в NetworkManager и/или nm-online?
Я искал похожие темы и нашел эти вопросы, но они не отвечают на мою проблему: