nordvpn sê die daemon is onbereikbaar: socket, groep of unit?
Die tonnel kan heeltemal reg wees; die CLI het net sy socket na nordvpnd verloor. Werk van die opdrag na die unit en dan na socket-regte, en stop by die eerste fout.
Om nordvpn te laat loop en ’n boodskap te kry oor ’n daemon wat nie bereik kan word nie, is ’n eng klag wat gewoonlik opduik wanneer jy al laat is. Dit sê niks oor of die tonnel werk nie, want die CLI is net ’n voorkant: hy praat oor ’n Unix-socket met ’n agtergrondproses, en die boodskap beteken dat daardie gesprek nie plaasgevind het nie. Werk van die opdrag af na buite en stop by die eerste ding wat onwaar blyk te wees.
Begin waar die fout verskyn
Twee prosesse is betrokke, en om hulle te verwar is wat dit geheimsinnig laat voel. Die daemon besit die tonnel en luister op ’n socket onder /run/nordvpn/. Die opdrag wat jy getik het, verbind aan daardie socket in plaas daarvan om self aan die interfaces te raak.
Wanneer die socket ontbreek of die verbinding weier, het die CLI niemand om te vra nie, so dit rapporteer die gebruikers-daemon- of stelsel-daemon-variant van dieselfde klag. Een van daardie variante noem die pad direk, en dit is die nuttigste sin in die hele gesprek.
Kontroleer die unit voor enigiets anders
Vra die diensbestuurder of die daemon loop, en begin en aktiveer dit dan in een stap as dit nie die geval is nie:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
As die unit bestaan maar onaktief is, laat enable --now dit begin en reël ook die volgende opstart. As die unit nie bestaan nie, is die pakket nie die een wat jy aanneem nie, en die geïnstalleerde naam maak meer saak as die naam in jou notas. Dit klink na ’n pedantiese onderskeid totdat jy twintig minute spandeer om ’n diens te aktiveer wat nooit onder daardie etiket geïnstalleer is nie. Lees wat teenwoordig is en tree dan daarvolgens op.
Om die unit-lêers te lys, besleg dit in een opdrag, en dit is die moeite werd voordat jy enigiets oor die installasie aflei:
systemctl list-unit-files 'nordvpn*'
service --status-all
Weergawes het die diens onder meer as een unit-naam verskeep, so ’n bou wat nordvpn eerder as nordvpnd gebruik, sal ’n perfekte kopie van hierdie fout lewer terwyl ’n gesonde diens reg daarnaas loop.
Die socket en sy groep bepaal toegang
Selfs met die daemon aan die loop, kan die verbinding op regte geweier word. Die installeerder skep ’n nordvpn-groep, en die socket word dienooreenkomstig besit, so ’n gebruiker buite daardie groep word geweier terwyl die diens heeltemal gesond is.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Groepildmaatskap word gelees wanneer ’n sessie begin, en daarom lyk dit of die verandering nie werk in die terminal waar jy dit gemaak het nie. ’n Vars aanmelddop of newgrp is nodig voordat die lopende sessie die nuwe groep sien. Toets in ’n nuwe dop, nie in die een wat pas die opdrag uitgevoer het nie. Anders sal jy aflei die regstelling het gefaal terwyl dit bloot nog nie toegepas is nie.
Eienaarskap van die socket self is die tweede helfte van daardie kontrole. Vergelyk die groep op die socket met die groepe wat in die dop gerapporteer word wat die CLI laat loop, en die regtevraag word in een stap beantwoord eerder as deur te herinstalleer:
ls -l /run/nordvpn
id
’n Lewende proses is nie bewys van die regte socket nie. ’n Daemon wat deur ’n ander bestuurder begin is, of ’n ou pakket wat ’n anders genoemde socket gebind het, rapporteer identies. Die gidslys onderskei daardie gevalle in een reël, en daarom is dit beter as herinstalleer.
Die per-gebruiker-proses op ouer pakkette
Sommige pakkette laat ’n tweede proses in die aangemelde gebruiker se konteks loop, wat die lessenaarintegrasie verwag om te vind. As ’n stelsel-inisiasieskrip dit begin sonder om na daardie rekening oor te skakel, gaan soek die CLI ’n daemon wat geen sessie besit nie.
Op ’n nie-systemd-inisiasie verdeel die gedokumenteerde reëling die rolle: die stelseldiens loop onder een naam en die gebruikerskant-proses onder die teikenrekening met chpst -u <user>. Kyk watter reëling jou installasie werklik gebruik voordat jy ’n opstartskrip byvoeg wat die ander een veronderstel.
Hoe om te weet jy is klaar
’n Opgradering is die gewone snellermeganisme, want die nuwe binary verwag ’n dienstoestand wat die oue nooit agtergelaat het nie. Stop, weer-aktiveer en begin in daardie volgorde maak dit skoon:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Daardie laaste opdrag is die aanvaardingstoets. ’n Gedrukte weergawe beteken die socket antwoord, wat elke oorblywende fout na aanmelding, plan of konnektiwiteit skuif en uit hierdie artikel uit. As dit antwoord, stop hier en gaan kyk eerder na die rekening.
As die socket steeds ontbreek, lees die unit-joernaal om te sien waarom dit afgesluit het, en kyk dan of /run/nordvpn bestaan en of die diensrekening daar kan skryf. ’n Proses wat opkom en dadelik doodgaan, teken sy rede in daardie joernaal aan, en een reël is vinniger om te lees as wat ’n herinstallasie is om uit te voer.