Извршувањето на nordvpn и добивањето порака за недостапен демон е тесна поплака што обично доаѓа кога веќе доцните. Таа не кажува ништо за тоа дали тунелот работи, бидејќи CLI е само преден дел: тој разговара со позадински процес преку Unix socket, а пораката значи дека тој разговор не се случил. Одете од командата кон надвор и запрете кај првото нешто што ќе се покаже како неточно.

Започнете онаму каде што се појавува грешката

Вклучени се два процеси, и токму нивното мешање го прави ова мистериозно. Демонот го поседува тунелот и слуша на socket под /run/nordvpn/. Командата што ја внесовте се поврзува со тој socket наместо сама да ги допира интерфејсите.

Кога socket недостасува или ја одбива врската, CLI нема кого да праша, па ја пријавува варијантата „кориснички демон“ или „системски демон“ од истата поплака. Една од тие варијанти директно ја именува патеката, и тоа е најкорисната реченица во целиот разговор.

Проверете го unit пред сѐ друго

Прашајте го менаџерот на услуги дали демонот работи, па ако не работи, стартувајте го и овозможете го во еден чекор:

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

Ако unit постои но е неактивен, enable --now истовремено го стартува и го уредува следното подигање. Ако unit не постои, пакетот не е тој што го претпоставувате, и инсталираното име е поважно од името во вашите белешки. Тоа звучи како педантна разлика сѐ додека не потрошите дваесет минути овозможувајќи услуга што никогаш не била инсталирана под таа ознака. Прочитајте што постои, па постапете според тоа.

Наведувањето на unit-датотеките го решава тоа со една команда, и вреди да се направи пред да заклучите нешто за инсталацијата:

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

Изданијата ја испорачуваа услугата под повеќе од едно име на unit, па изградбата што користи nordvpn наместо nordvpnd ќе создаде совршена копија од оваа грешка додека здрава услуга работи веднаш до неа.

Socket-от и неговата група одлучуваат за пристапот

Дури и со демон што работи, врската може да биде одбиена поради дозволи. Инсталаторот создава група nordvpn, и socket-от е поседуван соодветно, па корисник вон таа група е одбиен додека услугата е сосема здрава.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Членството во група се чита кога започнува сесија, и затоа изгледа дека промената не работи во терминалот каде што ја направивте. Потребна е нова најавна обвивка или newgrp пред сесијата што работи да ја види новата група. Тестирајте во нова обвивка, не во онаа што штотуку ја изврши командата. Инаку ќе заклучите дека поправката не успеала, а таа едноставно сѐ уште не е применета.

Сопственоста врз самиот socket е втората половина од таа проверка. Споредете ја групата на socket-от со групите што ги пријавува обвивката што работи CLI, и прашањето за дозволи е одговорено во еден чекор наместо со преинсталација:

ls -l /run/nordvpn
id

Жив процес не е доказ за вистинскиот socket. Демон стартуван од друг менаџер, или стар пакет што врзал поинаку именуван socket, пријавуваат исто. Списокот на директориумот ги разликува тие случаи во еден ред, затоа е подобар од преинсталација.

Процесот по корисник во постаро пакување

Некои пакувања извршуваат втор процес во контекст на најавениот корисник, што десктоп интеграцијата очекува да го најде. Ако системска init-скрипта го стартува без да премине на тој профил, CLI бара демон што не го поседува ниту една сесија.

На init без systemd документираниот распоред ги дели улогите: системската услуга работи под едно име, а процесот на корисничката страна под целниот профил со chpst -u <user>. Проверете кој распоред вашата инсталација навистина го користи пред да додадете стартна скрипта што го претпоставува другиот.

Како да знаете дека сте готови

Вообичаениот тригер е надградбата, бидејќи новата бинарна датотека очекува состојба на услугата што старата никогаш не ја оставила. Запирање, повторно овозможување и стартување по тој редослед тоа го расчистува:

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

Таа последна команда е тестот за прифаќање. Испечатена верзија значи дека socket-от одговара, што ја преместува секоја преостаната дефект во областа на најава, план или поврзаност и ја изведува од оваа статија. Ако одговори, престанете да читате тука и погледнете го профилот.

Ако socket-от сѐ уште недостасува, прочитајте го журналот на unit-от за да видите зошто прекинал, потоа проверете дали /run/nordvpn постои и дали услужниот профил може да пишува таму. Процес што ќе се подигне и веднаш умира го запишува својот причина во тој журнал, и една линија се чита побрзо отколку што се изведува преинсталација.

Поврзани статии