A nordvpn futtatása és egy elérhetetlen daemonról szóló üzenet szűk panasz, amely rendszerint akkor érkezik, amikor már késésben van. Semmit nem mond arról, hogy működik-e az alagút, mert a CLI csak egy előtér: egy Unix socketen keresztül beszél egy háttérfolyamattal, és az üzenet azt jelenti, hogy ez a beszélgetés nem történt meg. Haladjon kifelé a parancsból, és álljon meg az első dolognál, ami hamisnak bizonyul.

Ott kezdje, ahol a hiba megjelenik

Két folyamat vesz részt benne, és éppen az összekeverésük teszi rejtélyessé. A daemon birtokolja az alagutat, és a(z) /run/nordvpn/ alatti socketen figyel. A beírt parancs ehhez a sockethez kapcsolódik ahelyett, hogy maga nyúlna az interfészekhez.

Amikor a socket hiányzik vagy elutasítja a kapcsolatot, a CLI-nek nincs kit megkérdeznie, ezért ugyanannak a panasznak a „felhasználói daemon” vagy „rendszer-daemon” változatát jelenti. Az egyik ilyen változat közvetlenül megnevezi az útvonalat, és ez a leghasznosabb mondat az egész párbeszédben.

Minden más előtt ellenőrizze a unitot

Kérdezze meg a szolgáltatáskezelőt, fut-e a daemon, és ha nem, indítsa el és engedélyezze egy lépésben:

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

Ha a unit létezik, de inaktív, a(z) enable --now egyszerre elindítja és előkészíti a következő indítást. Ha a unit nem létezik, a csomag nem az, amit feltételez, és a telepített név fontosabb, mint a jegyzeteiben szereplő név. Ez pedáns megkülönböztetésnek hangzik, amíg húsz percet el nem tölt egy olyan szolgáltatás engedélyezésével, amelyet soha nem telepítettek ezen a címkén. Olvassa el, mi van ott, és aszerint cselekedjen.

A unitfájlok listázása egyetlen paranccsal tisztázza ezt, és érdemes megtenni, mielőtt bármit megállapítana a telepítésről:

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

A kiadások egynél több unitnév alatt szállították a szolgáltatást, ezért az a build, amely a(z) nordvpn helyett a(z) nordvpnd nevet használja, tökéletes másolatát adja ennek a hibának, miközben közvetlenül mellette egy egészséges szolgáltatás fut.

A socket és a csoportja dönt a hozzáférésről

Még futó daemon mellett is elutasítható a kapcsolat jogosultságok miatt. A telepítő létrehoz egy nordvpn csoportot, és a socket ennek megfelelően van birtokolva, ezért a csoporton kívüli felhasználó elutasítást kap, miközben a szolgáltatás teljesen egészséges.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

A csoporttagság a munkamenet indításakor olvasódik be, ezért tűnik úgy, hogy a változás nem működik abban a terminálban, ahol végrehajtotta. Új bejelentkező shellre vagy a(z) newgrp parancsra van szükség, mielőtt a futó munkamenet látja az új csoportot. Új shellben teszteljen, ne abban, amelyik épp lefuttatta a parancsot. Különben arra jut, hogy a javítás nem sikerült, holott csak még nem alkalmazták.

Maga a socket birtoklása a vizsgálat második fele. Hasonlítsa össze a socketen lévő csoportot a CLI-t futtató shellben jelentett csoportokkal, és a jogosultság kérdése egy lépésben megválaszolódik újratelepítés helyett:

ls -l /run/nordvpn
id

Egy élő folyamat nem bizonyítja a helyes socketet. Egy másik kezelő által indított daemon vagy egy régi csomag, amely más nevű socketet kötött, ugyanúgy jelent. A könyvtárlistázás egy sorban megkülönbözteti ezeket az eseteket, ezért jobb az újratelepítésnél.

A felhasználónkénti folyamat a régebbi csomagolásban

Egyes csomagolások második folyamatot futtatnak a bejelentkezett felhasználó környezetében, amelyet az asztali integráció elvár. Ha egy rendszer-init szkript anélkül indítja el, hogy leváltana arra a fiókra, a CLI olyan daemont keres, amelyet egyetlen munkamenet sem birtokol.

A systemd nélküli initen a dokumentált elrendezés kettéosztja a szerepeket: a rendszerszolgáltatás egy név alatt fut, a felhasználói oldali folyamat pedig a célfiók alatt a(z) chpst -u <user> paranccsal. Ellenőrizze, melyik elrendezést használja valójában a telepítése, mielőtt hozzáadna egy indítószkriptet, amely a másikat feltételezi.

Honnan tudja, hogy végzett

A frissítés a szokásos kiváltó ok, mert az új bináris olyan szolgáltatásállapotot vár, amelyet a régi soha nem hagyott maga után. A leállítás, az újraengedélyezés és az indítás ebben a sorrendben rendbe teszi:

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

Az utolsó parancs az átvételi teszt. A kiírt verzió azt jelenti, hogy a socket válaszol, ami minden maradék hibát a bejelentkezés, a csomag vagy a kapcsolódás területére mozdít, és kivisz ebből a cikkből. Ha válaszol, hagyja abba itt az olvasást, és inkább nézze meg a fiókot.

Ha a socket továbbra is hiányzik, olvassa el a unit naplóját, hogy lássa, miért lépett ki, majd ellenőrizze, hogy a(z) /run/nordvpn létezik, és a szolgáltatásfiók tud oda írni. Az a folyamat, amely feláll és azonnal meghal, feljegyzi az okát abba a naplóba, és egy sort gyorsabb elolvasni, mint egy újratelepítést végrehajtani.

Kapcsolódó cikkek