nordvpn паведамляе пра недасяжны дэман: сокет, група ці юніт?
Тунель можа быць цалкам спраўным; проста CLI страціў сокет да nordvpnd. Ідзіце ад каманды да юніта, затым да правоў на сокет, і спыніцеся на першай няўдачы.
Запуск nordvpn і паведамленне пра недасяжны дэман — вузкая скарга, якая звычайна прыходзіць, калі вы ўжо спазніліся. Яна нічога не кажа пра тое, ці працуе тунель, бо CLI — толькі пярэдні край: ён размаўляе з фонавым працэсам праз Unix-сокет, і паведамленне азначае, што гэтая размова не адбылася. Ідзіце ад каманды вонкі і спыніцеся на першым, што акажацца няпраўдай.
Пачніце з месца, дзе ўзнікае памылка
Задзейнічаны два працэсы, і менавіта іх блытаніна робіць сітуацыю загадкавай. Дэман валодае тунелем і слухае сокет у /run/nordvpn/. Каманда, якую вы набралі, падключаецца да гэтага сокета, замест таго каб самому кранаць інтэрфейсы.
Калі сокет адсутнічае або адмаўляе ў злучэнні, CLI няма ў каго спытаць, таму ён паведамляе варыянт «дэман карыстальніка» або «сістэмны дэман» той жа скаргі. Адзін з гэтых варыянтаў непасрэдна называе шлях, і гэта самая карысная фраза ва ўсёй размове.
Спачатку праверце юніт, а потым усё астатняе
Спытайце службу кіравання, ці працуе дэман, і калі не, запусціце і ўключыце яго адным крокам:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Калі юніт існуе, але неактыўны, enable --now і запускае яго, і ладзіць наступную загрузку. Калі ж юніта няма, пакет не той, што вы мяркуеце, і ўсталяванае імя важнейшае за імя ў вашых нататках. Гэта гучыць як педантычная розніца, пакуль вы не выдаткаваце дваццаць хвілін на ўключэнне службы, якая ніколі не ўсталёўвалася пад гэтай назвай. Прачытайце тое, што ёсць, і дзейнічайце зыходзячы з гэтага.
Пералік файлаў юнітаў вырашае гэта адной камандай, і гэта варта зрабіць, перш чым рабіць любыя высновы пра ўсталяванне:
systemctl list-unit-files 'nordvpn*'
service --status-all
Выпускі пастаўлялі службу пад некалькімі імёнамі юнітаў, таму зборка, якая выкарыстоўвае nordvpn замест nordvpnd, дасць дакладную копію гэтай памылкі, пакуль побач спакойна працуе здаровая служба.
Сокет і яго група вырашаюць доступ
Нават калі дэман працуе, злучэнне можа быць адхілена з-за правоў. Усталёўшчык стварае групу nordvpn, і сокет мае адпаведнага ўладальніка, таму карыстальнік па-за гэтай групай атрымлівае адмову, хоць служба цалкам здаровая.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Членства ў групе чытаецца пры старце сеанса, таму здаецца, што змена не працуе ў тым тэрмінале, дзе вы яе зрабілі. Патрэбна новая абалонка ўваходу або newgrp, перш чым бягучы сеанс убачыць новую групу. Праверце ў новай абалонцы, а не ў той, што толькі што выканала каманду. Інакш вы зробіце выснову, што выпраўленне не ўдалося, тады як яно проста яшчэ не прымянілася.
Уладанне самім сокетам — другая палова гэтай праверкі. Параўнайце групу на сокеце з групамі, паказанымі ў абалонцы, якая запускае CLI, і пытанне правоў вырашаецца адным крокам, а не пераўсталяваннем:
ls -l /run/nordvpn
id
Жывы працэс не доказ правільнага сокета. Дэман, запушчаны іншым мэнэджарам, або стары пакет, што прывязаў сокет з іншай назвай, паведамляюць аднолькава. Лістынг каталога адрознівае гэтыя выпадкі адным радком, і таму ён лепш за пераўсталяванне.
Працэс на карыстальніка ў старых пакетах
Некаторыя пакеты запускаюць другі працэс у кантэксце ўвайшоўшага карыстальніка, які інтэграцыя з працоўным сталом чакае знайсці. Калі сістэмны init-скрыпт запускае яго, не пераходзячы ў гэты акаўнт, CLI шукае дэман, якім не валодае ні адзін сеанс.
На init без systemd дакументаваная схема раздзяляе ролі: сістэмная служба працуе пад адной назвай, а працэс на баку карыстальніка — пад мэтавым акаўнтам з chpst -u <user>. Праверце, якую схему ваша ўсталяванне фактычна выкарыстоўвае, перш чым дадаваць стартавы скрыпт, які мяркуе іншую.
Як зразумець, што вы скончылі
Звычайны трыгер — абнаўленне, бо новы бінарнік чакае стану службы, якога стары ніколі не пакідаў. Спыніць, зноў уключыць і запусціць менавіта ў гэтым парадку — гэта чысціць:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Апошняя каманда — гэта тэст прыёмкі. Надрукаваная версія азначае, што сокет адказвае, і гэта пераносіць усе астатнія няспраўнасці ў сферу ўваходу, плана або злучэння і выводзіць іх з гэтага артыкула. Калі ён адказвае, спыніце чытаць тут і паглядзіце замест гэтага на акаўнт.
Калі сокет усё яшчэ адсутнічае, прачытайце журнал юніта, каб убачыць, чаму ён выйшаў, затым праверце, што /run/nordvpn існуе і што службовы акаўнт можа там пісаць. Працэс, які ўзнімаецца і адразу памірае, запісвае сваю прычыну ў гэтым журнале, і адзін радок хутчэй прачытаць, чым выканаць пераўсталяванне.