Cu ceva timp în urmă am configurat un serviciu systemd pentru a rula după ce rețeaua este online conform documentatiei.
Acesta este fișierul unitar:
[Unitate]
Descriere=Reîmprospătează lista de oglindă Pacman cu Reflector.
Documentație=https://wiki.archlinux.org/index.php/Reflector
Wants=network-online.target
După=network-online.target nss-lookup.target
[Serviciu]
Type=onehot
ExecStart=/usr/bin/reflector @/etc/xdg/reflector/reflector.conf
CacheDirectory=reflector
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
Environment=XDG_CACHE_HOME=/var/cache/reflector
LockPersonality=adevărat
MemoryDenyWriteExecute=true
NoNewPrivileges=adevărat
PrivateDevices=true
PrivateTmp=adevărat
PrivateUsers=adevărat
ProtectClock=adevărat
ProtectControlGroups=true
ProtectHome=adevarat
ProtectHostname=true
ProtectKernelTunables=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectSystem=strict
ReadOnlyPaths=/etc/xdg/reflector/reflector.conf
ReadWritePaths=/etc/pacman.d/mirrorlist
RemoveIPC=true
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_BLUEAFTOAFGFOTHK_BLUEAFTOAFGDP_ AF_BLUEAFTOAFGDPX_
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=adevărat
SystemCallArchitectures=nativ
SystemCallFilter=@system-service
SystemCallFilter=~@resurse @privilegiate
UMask=177
[Instalare]
WantedBy=multi-user.target
Pe documentatia, serviciul ar trebui să fie deja configurat corect pentru a aștepta stabilirea conexiunii la rețea (adică: sunt conectat, NetworkManager s-a conectat la WiFi și sistemului i s-a atribuit un IP).
network-online.target
este o țintă care așteaptă activ până când rețeaua este „în sus”, unde definiția „sus” este definită de software-ul de gestionare a rețelei. De obicei, indică o adresă IP configurată, rutabilă. Scopul său principal este de a întârzia activ activarea serviciilor până când rețeaua este configurată.
M-am asigurat și de asta NetworkManager-wait-online.service
este activat.
$ systemctl este activat NetworkManager-wait-online.service systemd-networkd-wait-online.service
activat
dezactivat
În loc ca serviciul să aștepte să pornească până când a fost stabilită o conexiune la internet, văd o eroare pe consola sistemului aproape imediat ce îmi văd promptul de conectare.
05 iulie 07:40:02 gadget systemd[1]: Se pornește actualizarea listei de oglindă Pacman cu Reflector....
05 iulie 07:40:03 gadget reflector[564]: eroare: nu s-a putut prelua datele de stare oglindă: URLError: <eroare urlopen [Errno -3] Eroare temporară în rezoluția numelui>
05 iulie 07:40:03 gadget systemd[1]: reflector.service: Proces principal ieșit, cod=ieșit, stare=1/Eșec
05 iulie 07:40:03 gadget systemd[1]: reflector.service: a eșuat cu rezultatul „exit-code”.
05 iulie 07:40:03 gadget systemd[1]: Nu s-a pornit Actualizarea listei de oglindă Pacman cu Reflector..
Deoarece ar trebui să aștepte ca rețeaua să fie online și DNS-ul să fie disponibil, am verificat și starea NetworkManager-wait-online.service
, network-online.target
și nss-lookup.target
:
$ systemctl status NetworkManager-wait-online.service
â NetworkManager-wait-online.service - NetworkManager Wait Online
Încărcat: încărcat (/usr/lib/systemd/system/NetworkManager-wait-online.service; activat; prestabilit furnizor: dezactivat)
Activ: activ (ieșit) din Luni 2021-07-05 07:40:02 CEST; acum 44 de minute
Documente: man:nm-online(1)
PID principal: 544 (cod=ieșit, stare=0/SUCCESS)
Sarcini: 0 (limită: 38321)
Memorie: 0B
CPU: 0
CGroup: /system.slice/NetworkManager-wait-online.service
05 iulie 07:40:02 gadget systemd[1]: Se pornește Network Manager Wait Online...
05 iulie 07:40:02 gadget systemd[1]: Manager de rețea finalizat, așteptați online.
$ systemctl status network-online.target
â network-online.target - Rețeaua este online
Încărcat: încărcat (/usr/lib/systemd/system/network-online.target; static)
Activ: activ din Luni 2021-07-05 07:40:02 CEST; acum 1h 5min
Documente: man:systemd.special(7)
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
05 iulie 07:40:02 gadget systemd[1]: Rețeaua țintă atinsă este online.
$ systemctl status nss-lookup.target
â nss-lookup.target - Căutări de nume de gazdă și rețea
Încărcat: încărcat (/usr/lib/systemd/system/nss-lookup.target; static)
Activ: inactiv (mort)
Documente: man:systemd.special(7)
Mi se pare ciudat NetworkManager-wait-online.service
rapoartele s-au terminat imediat după pornire. Mai trebuie să configurez ceva? Este aceasta o eroare în NetworkManager și/sau nm-online?
Am căutat subiecte similare și am găsit aceste întrebări, dar nu răspund la problema mea: