nordvpn sier at daemonen ikke nås: socket, gruppe eller unit?
Tunnelen kan være helt i orden; CLI-en har bare mistet socketen sin til nordvpnd. Gå fra kommandoen til uniten, deretter til socketrettighetene, og stopp ved første feil.
Å kjøre nordvpn og få en melding om en daemon som ikke kan nås, er en smal klage som vanligvis kommer når du allerede er sent ute. Den sier ingenting om tunnelen virker, fordi CLI-en bare er en front: den snakker med en bakgrunnsprosess over en Unix-socket, og meldingen betyr at den samtalen ikke fant sted. Gå utover fra kommandoen og stopp ved den første tingen som viser seg å være feil.
Start der feilen dukker opp
To prosesser er involvert, og det er forvekslingen av dem som gjør dette mystisk. Daemonen eier tunnelen og lytter på en socket under /run/nordvpn/. Kommandoen du skrev, kobler til den socketen i stedet for selv å røre grensesnittene.
Når socketen mangler eller avviser tilkoblingen, har CLI-en ingen å spørre, så den rapporterer bruker-daemon- eller system-daemon-varianten av den samme klagen. En av disse variantene nevner stien direkte, og det er den nyttigste setningen i hele utvekslingen.
Sjekk uniten før noe annet
Spør tjenesteadministratoren om daemonen kjører, og start og aktiver den i ett trinn hvis den ikke gjør det:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Hvis uniten finnes men er inaktiv, starter enable --now den og ordner neste oppstart samtidig. Hvis uniten ikke finnes, er ikke pakken den du antar, og det installerte navnet betyr mer enn navnet i notatene dine. Det høres ut som en pedantisk forskjell helt til du bruker tjue minutter på å aktivere en tjeneste som aldri ble installert under den etiketten. Les hva som finnes, og handl etter det.
Å liste unitfilene avgjør det med én kommando, og det er verdt å gjøre før du konkluderer noe om installasjonen:
systemctl list-unit-files 'nordvpn*'
service --status-all
Utgivelser har levert tjenesten under mer enn ett unitnavn, så et bygg som bruker nordvpn i stedet for nordvpnd vil produsere en perfekt kopi av denne feilen mens en sunn tjeneste kjører rett ved siden av.
Socketen og gruppen dens avgjør tilgangen
Selv med daemonen kjørende kan tilkoblingen avvises på grunn av rettigheter. Installatøren oppretter en nordvpn-gruppe, og socketen eies i samsvar med det, så en bruker utenfor den gruppen avvises mens tjenesten er helt sunn.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Gruppemedlemskap leses når en økt starter, og derfor ser endringen ut til ikke å virke i terminalen der du gjorde den. Et nytt innloggingsskall eller newgrp kreves før den kjørende økten ser den nye gruppen. Test i et nytt skall, ikke i det som nettopp kjørte kommandoen. Ellers konkluderer du med at rettelsen feilet når den bare ikke er anvendt ennå.
Eierskapet til socketen selv er den andre halvdelen av den sjekken. Sammenlign gruppen på socketen med gruppene som skallet som kjører CLI-en rapporterer, og spørsmålet om rettigheter er besvart i ett trinn i stedet for ved å reinstalere:
ls -l /run/nordvpn
id
En levende prosess er ikke bevis på riktig socket. En daemon startet av en annen administrator, eller en gammel pakke som bandt en annerledes navngitt socket, rapporterer identisk. Kataloglisten skiller de tilfellene på én linje, og derfor slår den reinstallasjon.
Prosessen per bruker på eldre pakking
Noen pakninger kjører en andre prosess i konteksten til den innloggede brukeren, som skrivebordsintegrasjonen forventer å finne. Hvis et system-init-skript starter den uten å gå ned til den kontoen, leter CLI-en etter en daemon som ingen økt eier.
På et init uten systemd deler den dokumenterte ordningen rollene: systemtjenesten kjører under ett navn og prosessen på brukersiden under målkontoen med chpst -u <user>. Sjekk hvilken ordning installasjonen din faktisk bruker før du legger til et oppstartsskript som forutsetter den andre.
Hvordan vite at du er ferdig
En oppgradering er den vanlige utløseren, fordi den nye binærfila forventer en tjenestetilstand som den gamle aldri forlot. Stoppe, aktivere på nytt og starte i den rekkefølgen rydder det:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Den siste kommandoen er aksepttesten. En utskrevet versjon betyr at socketen svarer, noe som flytter enhver gjenværende feil til innloggings-, plan- eller tilkoblingsområdet og ut av denne artikkelen. Hvis den svarer, slutt å lese her og gå og se på kontoen i stedet.
Hvis socketen fortsatt mangler, les unit-journalen for å se hvorfor den avsluttet, og sjekk deretter at /run/nordvpn finnes og at tjenestekontoen kan skrive der. En prosess som reiser seg og dør med en gang, registrerer årsaken i den journalen, og én linje er raskere å lese enn en reinstallasjon er å utføre.