Zagon nordvpn in sporočilo o nedosegljivem demonu je ozka pritožba, ki običajno prispe, ko ste že prepozni. Ne pove ničesar o tem, ali tunel deluje, ker je CLI le sprednji del: pogovarja se s procesom v ozadju prek unixovega socketa, sporočilo pa pomeni, da tega pogovora ni bilo. Pojdite od ukaza navzven in se ustavite pri prvi stvari, ki se izkaže za napačno.

Začnite tam, kjer se napaka pojavi

Vpletena sta dva procesa, in prav njuna zmeda naredi to skrivnostno. Demon ima v lasti tunel in posluša na socketu pod /run/nordvpn/. Ukaz, ki ste ga vtipkali, se poveže s tem socketom, namesto da bi se sam dotaknil vmesnikov.

Ko socket manjka ali zavrne povezavo, CLI nima koga vprašati, zato poroča različico »uporabniški demon« ali »sistemski demon« iste pritožbe. Ena od teh različic neposredno navaja pot, in to je najbolj uporaben stavek v celotni izmenjavi.

Najprej preverite unit

Vprašajte upravitelja storitev, ali demon teče, in če ne, ga zaženite in omogočite v enem koraku:

systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version

Če unit obstaja, a je neaktiven, enable --now hkrati zažene in uredi naslednji zagon. Če unit ne obstaja, paket ni tisti, ki ga predvidevate, in nameščeno ime je pomembnejše od imena v vaših zapiskih. To zveni kot pedantna razlika, dokler ne porabite dvajset minut za omogočanje storitve, ki nikoli ni bila nameščena pod to oznako. Preberite, kaj je, in ravnajte v skladu s tem.

Seznam datotek unit to razreši z enim ukazom, in to je vredno storiti, preden karkoli sklepate o namestitvi:

systemctl list-unit-files 'nordvpn*'
service --status-all

Izdaje so storitev dobavljale pod več kot enim imenom unita, zato bo gradnja, ki uporablja nordvpn namesto nordvpnd, ustvarila popolno kopijo te napake, medtem ko tik ob njej teče zdrava storitev.

Dostop odločata socket in njegova skupina

Tudi z delujočim demonom je povezava lahko zavrnjena zaradi dovoljenj. Nameščevalnik ustvari skupino nordvpn, socket pa je temu ustrezno v lasti, zato je uporabnik zunaj te skupine zavrnjen, medtem ko je storitev popolnoma zdrava.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Članstvo v skupini se prebere ob začetku seje, zato se zdi, da sprememba ne deluje v terminalu, kjer ste jo naredili. Potrebna je nova prijavna lupina ali newgrp, preden tekoča seja vidi novo skupino. Preizkusite v novi lupini, ne v tisti, ki je pravkar izvedla ukaz. Sicer boste sklenili, da popravek ni uspel, ko pa preprosto še ni bil uporabljen.

Lastništvo samega socketa je druga polovica tega preverjanja. Primerjajte skupino na socketu s skupinami, ki jih poroča lupina, ki poganja CLI, in vprašanje dovoljenj je odgovorjeno v enem koraku namesto s ponovno namestitvijo:

ls -l /run/nordvpn
id

Živ proces ni dokaz pravega socketa. Demon, ki ga je zagnal drug upravitelj, ali star paket, ki je vezal drugače imenovan socket, poročata enako. Seznam imenika te primere loči v eni vrstici, zato je boljši od ponovne namestitve.

Proces na uporabnika pri starejšem pakiranju

Nekatera pakiranja poganjajo drugi proces v kontekstu prijavljenega uporabnika, ki ga namizna integracija pričakuje. Če ga sistemska init skripta zažene brez prehoda na ta račun, CLI išče demona, ki ga ne poseduje nobena seja.

Pri initu brez systemd dokumentirana ureditev deli vloge: sistemska storitev teče pod enim imenom, proces na uporabniški strani pa pod ciljnim računom z chpst -u <user>. Preverite, katero ureditev vaša namestitev dejansko uporablja, preden dodate zagonsko skripto, ki predvideva drugo.

Kako veste, da ste končali

Običajni sprožilec je nadgradnja, ker nova binarna datoteka pričakuje stanje storitve, ki ga stara ni nikoli zapustila. Ustavitev, ponovno omogočanje in zagon v tem vrstnem redu to počisti:

sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version

Zadnji ukaz je sprejemni test. Izpisana različica pomeni, da socket odgovarja, kar vsako preostalo napako prestavi na področje prijave, paketa ali povezljivosti in jo odstrani iz tega članka. Če odgovori, nehajte brati tukaj in raje poglejte račun.

Če socket še vedno manjka, preberite dnevnik unita, da vidite, zakaj se je ustavil, nato preverite, ali /run/nordvpn obstaja in ali lahko servisni račun piše tja. Proces, ki se dvigne in takoj umre, zapiše svoj razlog v ta dnevnik, in eno vrstico je hitreje prebrati, kot je izvesti ponovno namestitev.

Sorodni članki