Palaist nordvpn un saņemt ziņojumu par nepieejamu dēmonu ir šaura sūdzība, kas parasti nāk tad, kad jau esat nokavējis. Tā neko nepasaka par to, vai tunelis darbojas, jo CLI ir tikai priekšpuse: tā runā ar fona procesu pa Unix socket, un ziņojums nozīmē, ka šī saruna nenotika. Ejiet no komandas uz āru un apstājieties pie pirmās lietas, kas izrādās nepatiesa.

Sāciet tur, kur parādās kļūda

Šeit iesaistīti divi procesi, un tieši to sajaukšana padara šo lietu noslēpumainu. Dēmons pārvalda tuneli un klausās socket, kas atrodas zem /run/nordvpn/. Jūsu ievadītā komanda savienojas ar šo socket, nevis pati aizskar saskarnes.

Kad socket trūkst vai atsakās savienoties, CLI nav kam jautāt, tāpēc tā ziņo par tās pašas sūdzības „lietotāja dēmona“ vai „sistēmas dēmona“ variantu. Viens no šiem variantiem tieši nosauc ceļu, un tas ir visnoderīgākais teikums visā sarunā.

Vispirms pārbaudiet unit

Pajautājiet servisa pārvaldniekam, vai dēmons darbojas, un, ja nedarbojas, vienā solī palaidiet un iespējojiet to:

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

Ja unit eksistē, bet ir neaktīvs, enable --now to palaiž un vienlaikus sagatavo nākamo ielādi. Ja unit neeksistē, pakotne nav tā, ko jūs pieņemat, un instalētais nosaukums ir svarīgāks par nosaukumu jūsu piezīmēs. Tas izklausās pēc pedantiskas atšķirības, līdz jūs pavadāt divdesmit minūtes, iespējojot servisu, kas nekad nav ticis instalēts ar šo apzīmējumu. Izlasiet, kas ir, un rīkojieties saskaņā ar to.

Unit failu uzskaitīšana to atrisina ar vienu komandu, un to ir vērts izdarīt pirms jebkādu secinājumu izdarīšanas par instalāciju:

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

Izlaidumi ir piegādājuši servisu ar vairāk nekā vienu unit nosaukumu, tāpēc build, kas izmanto nordvpn, nevis nordvpnd, radīs perfektu šīs kļūdas kopiju, kamēr tieši blakus darbojas vesels serviss.

Piekļuvi nosaka socket un tā grupa

Pat darbojoties dēmonam, savienojums var tikt noraidīts atļauju dēļ. Instalētājs izveido grupu nordvpn, un socket tiek piederēts attiecīgi, tāpēc lietotājs ārpus šīs grupas tiek noraidīts, kamēr serviss ir pilnīgi vesels.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Grupas dalība tiek nolasīta sesijas sākumā, tāpēc šķiet, ka izmaiņas terminālī, kurā tās veicāt, nestrādā. Pirms darbojošā sesija ierauga jauno grupu, nepieciešams jauns pieteikšanās shell vai newgrp. Pārbaudiet jaunā shell, nevis tajā, kas tikko izpildīja komandu. Citādi jūs secināsiet, ka labojums neizdevās, lai gan tas vienkārši vēl nav piemērots.

Paša socket īpašumtiesības ir šīs pārbaudes otrā puse. Salīdziniet grupu uz socket ar grupām, ko ziņo CLI palaidošā shell, un atļauju jautājums tiek atbildēts vienā solī, nevis pārinstalējot:

ls -l /run/nordvpn
id

Darbojošs process nav pierādījums pareizajam socket. Dēmons, ko palaidis cits pārvaldnieks, vai veca pakotne, kas piesaistījusi citādi nosauktu socket, ziņo tāpat. Kataloga saraksts šos gadījumus atšķir vienā rindā, tāpēc tas ir labāks par pārinstalēšanu.

Procesa lietotājam vecākā pakojumā

Dažas pakojumi palaiž otru procesu pieteikušā lietotāja kontekstā, ko darbvirsmas integrācija sagaida atrast. Ja sistēmas init skripts to palaiž, nepārslēdzoties uz šo kontu, CLI meklē dēmonu, kuram nepieder neviena sesija.

Init bez systemd dokumentētais izkārtojums sadala lomas: sistēmas serviss darbojas ar vienu nosaukumu, bet lietotāja puses process darbojas mērķa kontā ar chpst -u <user>. Pārbaudiet, kuru izkārtojumu jūsu instalācija patiešām izmanto, pirms pievienojat palaišanas skriptu, kas pieņem otru.

Kā zināt, ka esat pabeidzis

Parastais iemesls ir atjauninājums, jo jaunais binārais fails gaida servisa stāvokli, ko vecais nekad nav atstājis. Apturēšana, atkārtota iespējošana un palaišana šādā secībā to sakārto:

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

Šī pēdējā komanda ir pieņemšanas tests. Izdrukāta versija nozīmē, ka socket atbild, kas katru atlikušo kļūmi pārvieto uz pieteikšanās, plāna vai savienojamības jomu un izved no šī raksta. Ja tas atbild, pārtrauciet lasīt šeit un aizejiet apskatīt kontu.

Ja socket joprojām trūkst, izlasiet unit žurnālu, lai redzētu, kāpēc tas apstājās, pēc tam pārbaudiet, vai /run/nordvpn eksistē un vai servisa konts tur var rakstīt. Process, kas paceļas un tūlīt mirst, ieraksta savu iemeslu šajā žurnālā, un vienu rindu izlasīt ir ātrāk nekā veikt pārinstalēšanu.

Saistītie raksti