nordvpn-ді іске қосып, қолжетімсіз демон туралы хабарлама алу — әдетте қазірдің өзінде кешіккен кезде келетін тар шағым. Ол туннельдің жұмысы туралы ештеңе айтпайды, өйткені CLI тек алдыңғы бөлік: ол Unix socket арқылы фондық процеспен сөйлеседі, ал хабарлама сол әңгіменің болмағанын білдіреді. Пәрменнен сыртқа қарай жүріңіз және жалған болып шыққан бірінші нәрседе тоқтаңыз.

Қатенің пайда болатын жерінен бастаңыз

Мұнда екі процесс қатысады, және оларды шатастыру осы жағдайды жұмбақ етеді. Демон туннельге ие және /run/nordvpn/ астындағы socket-те тыңдайды. Сіз терген пәрмен интерфейстерге өзі тимей, сол 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 қолданатын build осы қатенің дәл көшірмесін жасайды, ал дұрыс қызмет дәл қасында жұмыс істеп тұрады.

Socket және оның тобы қолжетімділікті шешеді

Демон жұмыс істеп тұрса да, қосылу рұқсаттарға байланысты қабылданбауы мүмкін. Орнатушы nordvpn тобын жасайды, және socket соған сәйкес иеленеді, сондықтан сол топтан тыс пайдаланушы қабылданбайды, ал қызмет толығымен сау.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Топ мүшелігі сессия басталғанда оқылады, сондықтан өзгеріс сіз жасаған терминалда жұмыс істемеген сияқты көрінеді. Жұмыс істеп тұрған сессия жаңа топты көргенге дейін жаңа кіру shell-і немесе newgrp қажет. Жаңа shell-де тексеріңіз, пәрменді жаңа ғана орындаған shell-де емес. Әйтпесе түзету сәтсіз болды деп қорытынды жасайсыз, бірақ ол жай ғана әлі қолданылмаған.

Socket-тің өзін иелену сол тексерудің екінші жартысы. Socket-тегі топты CLI іске қосқан shell хабарлаған топтармен салыстырыңыз, және рұқсат мәселесі қайта орнатудың орнына бір қадамда шешіледі:

ls -l /run/nordvpn
id

Жұмыс істеп тұрған процесс дұрыс socket-тің дәлелі емес. Басқа менеджер іске қосқан демон немесе басқа атаулы socket-ті байланыстырған ескі пакет бірдей хабарлайды. Каталог тізімі бұл жағдайларды бір жолда ажыратады, сондықтан ол қайта орнатудан артық.

Ескі пакеттегі пайдаланушыға шаққандағы процесс

Кейбір пакеттер кірген пайдаланушы контекстінде екінші процесті іске қосады, оны жұмыс үстелі интеграциясы табуды күтеді. Егер жүйелік init скрипті оны сол тіркелгіге түспей іске қосса, CLI ешбір сессия иеленбейтін демонды іздейді.

systemd жоқ init-те құжатталған орналасу рөлдерді бөледі: жүйелік қызмет бір атаумен жұмыс істейді, ал пайдаланушы жағындағы процесс мақсатты тіркелгі астында chpst -u <user> арқылы жұмыс істейді. Екіншісін болжайтын іске қосу скриптін қоспас бұрын орнатылымыңыз қай орналасуды шын мәнінде қолданатынын тексеріңіз.

Аяқтағаныңызды қалай білуге болады

Әдеттегі себеп — жаңарту, өйткені жаңа бинарлық файл ескісі ешқашан қалдырмаған қызмет күйін күтеді. Тоқтату, қайта қосу және іске қосу осы ретпен оны тазалайды:

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

Сол соңғы пәрмен — қабылдау сынағы. Басылған нұсқа socket жауап беріп тұрғанын білдіреді, бұл қалған барлық ақаулықты кіру, жоспар немесе қосылым аймағына жылжытып, осы мақаладан шығарады. Егер ол жауап берсе, осында оқуды тоқтатып, оның орнына тіркелгіні қараңыз.

Егер socket әлі жоқ болса, неліктен тоқтағанын көру үшін unit журналын оқыңыз, содан кейін /run/nordvpn бар екенін және қызмет тіркелгісінің онда жаза алатынын тексеріңіз. Көтеріліп, бірден өлетін процесс өз себебін сол журналға жазады, ал бір жолды оқу қайта орнатуды орындаудан жылдамырақ.

Қатысты мақалалар