nordvpn hlási, že nedosiahne na démona: socket, skupina alebo unit?
Tunel môže byť úplne v poriadku; CLI len stratil svoj socket k nordvpnd. Prejdite od príkazu k unitu, potom k oprávneniam socketu, a zastavte sa pri prvom zlyhaní.
Spustenie nordvpn a správa o nedostupnom démonovi je úzka sťažnosť, ktorá zvyčajne príde, keď už meškáte. Nehovorí nič o tom, či tunel funguje, pretože CLI je len predná časť: rozpráva sa s procesom na pozadí cez unixový socket a správa znamená, že tento rozhovor nenastal. Choďte od príkazu smerom von a zastavte sa pri prvej veci, ktorá sa ukáže ako nepravdivá.
Začnite tam, kde sa chyba objavuje
Zúčastňujú sa dva procesy a práve ich zámena robí túto situáciu záhadnou. Démon vlastní tunel a počúva na sockete pod /run/nordvpn/. Príkaz, ktorý ste napísali, sa pripája k tomuto socketu, namiesto toho aby sám siahal na rozhrania.
Keď socket chýba alebo odmieta spojenie, CLI nemá koho sa opýtať, a tak hlási variant „používateľský démon“ alebo „systémový démon“ tej istej sťažnosti. Jeden z tých variantov priamo pomenúva cestu, a to je najužitočnejšia veta celej výmeny.
Najprv skontrolujte unit
Opýtajte sa správcu služieb, či démon beží, a ak nie, spustite a povoľte ho jedným krokom:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Ak unit existuje, ale je neaktívny, enable --now ho zároveň spustí a zariadi ďalší štart. Ak unit neexistuje, balík nie je ten, ktorý predpokladáte, a nainštalované meno je dôležitejšie ako meno vo vašich poznámkach. Znie to ako pedantské rozlíšenie, kým nestrávite dvadsať minút povoľovaním služby, ktorá pod týmto označením nikdy nebola nainštalovaná. Prečítajte si, čo existuje, a konajte podľa toho.
Výpis súborov unit to vyrieši jediným príkazom a stojí za to ho urobiť, než o inštalácii čokoľvek uzavriete:
systemctl list-unit-files 'nordvpn*'
service --status-all
Vydania dodávali službu pod viac ako jedným menom unitu, takže zostavenie, ktoré používa nordvpn namiesto nordvpnd, vytvorí dokonalú kópiu tejto chyby, zatiaľ čo hneď vedľa beží zdravá služba.
O prístupe rozhoduje socket a jeho skupina
Aj s bežiacim démonom môže byť spojenie odmietnuté pre oprávnenia. Inštalátor vytvára skupinu nordvpn a socket je podľa toho vlastnený, takže používateľ mimo tejto skupiny dostane odmietnutie, hoci služba je úplne zdravá.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Členstvo v skupine sa načíta pri štarte relácie, a preto sa zdá, že zmena v termináli, kde ste ju urobili, nefunguje. Potrebujete nový prihlasovací shell alebo newgrp, než bežiaca relácia uvidí novú skupinu. Testujte v novom shelli, nie v tom, ktorý práve spustil príkaz. Inak dospejete k záveru, že oprava zlyhala, keď len ešte nebola použitá.
Vlastníctvo samotného socketu je druhá polovica tejto kontroly. Porovnajte skupinu na sockete so skupinami, ktoré hlási shell spúšťajúci CLI, a otázka oprávnení je zodpovedaná jedným krokom namiesto preinštalovania:
ls -l /run/nordvpn
id
Živý proces nie je dôkazom správneho socketu. Démon spustený iným správcom alebo starý balík, ktorý naviazal inak pomenovaný socket, hlásia to isté. Výpis adresára rozlíši tieto prípady na jednom riadku, a preto je lepší ako preinštalácia.
Proces pre jednotlivého používateľa v staršom balení
Niektoré balenia spúšťajú druhý proces v kontexte prihláseného používateľa, ktorý desktopová integrácia očakáva. Ak ho systémový init skript spustí bez prechodu na tento účet, CLI hľadá démona, ktorého nevlastní žiadna relácia.
Pri inite bez systemd dokumentované usporiadanie delí roly: systémová služba beží pod jedným menom a proces na strane používateľa pod cieľovým účtom s chpst -u <user>. Overte, ktoré usporiadanie vaša inštalácia skutočne používa, než pridáte štartovací skript, ktorý predpokladá to druhé.
Ako zistiť, že ste hotoví
Zvyčajným spúšťačom je upgrade, pretože nový binárny súbor očakáva stav služby, ktorý ten starý nikdy nezanechal. Zastavenie, nové povolenie a spustenie v tomto poradí to vyčistí:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Posledný príkaz je akceptačný test. Vytlačená verzia znamená, že socket odpovedá, čo každú zostávajúcu závadu presúva do oblasti prihlásenia, plánu alebo konektivity a mimo tohto článku. Ak odpovedá, prestaňte čítať tu a namiesto toho sa pozrite na účet.
Ak socket stále chýba, prečítajte si journal unitu, aby ste videli, prečo sa skončil, potom overte, že /run/nordvpn existuje a že servisný účet tam môže zapisovať. Proces, ktorý naskočí a hneď zomrie, zapisuje svoj dôvod do toho journalu, a jeden riadok sa číta rýchlejšie, než sa vykonáva preinštalácia.