nordvpn ishga tushirib, yetib bo'lmaydigan daemon haqida xabar olish — bu odatda siz allaqachon kechikkan paytda keladigan tor shikoyat. U tunnel ishlayotgani haqida hech narsa demaydi, chunki CLI faqat old qism: u Unix socket orqali fon jarayoni bilan gaplashadi, xabar esa bu suhbat bo'lmaganini bildiradi. Buyruqdan tashqariga qarab yuring va yolg'on bo'lib chiqadigan birinchi narsada to'xtang.

Xato ko'rinadigan joydan boshlang

Bu yerda ikki jarayon ishtirok etadi va ularni chalkashtirish aynan shu narsani sirli qiladi. Daemon tunnelga egalik qiladi va /run/nordvpn/ ostidagi socket'da tinglaydi. Siz yozgan buyruq interfeyslarga o'zi tegmasdan o'sha socket'ga ulanadi.

Socket yo'q bo'lsa yoki ulanishni rad etsa, CLI da so'raydigan hech kim yo'q, shuning uchun u o'sha shikoyatning «foydalanuvchi daemoni» yoki «tizim daemoni» variantini xabar qiladi. O'sha variantlardan biri yo'lni to'g'ridan-to'g'ri nomlaydi va bu butun suhbatdagi eng foydali gap.

Hamma narsadan oldin unite tekshiring

Xizmat menejeridan daemon ishlayaptimi deb so'rang, agar ishlamasa, uni bir qadamda ishga tushiring va yoqing:

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

Agar unit mavjud bo'lsa, lekin faol bo'lmasa, enable --now uni bir vaqtning o'zida ishga tushiradi va keyingi yuklanishni tayyorlaydi. Agar unit mavjud bo'lmasa, paket siz o'ylagan paket emas, va o'rnatilgan nom yozuvlaringizdagi nomdan muhimroq. Bu o'sha yorliq ostida hech qachon o'rnatilmagan xizmatni yoqishga yigirma daqiqa sarflamaguningizcha mayda farqdek tuyuladi. Bor narsani o'qing, keyin shunga muvofiq harakat qiling.

unit fayllarini sanab chiqish buni bitta buyruq bilan hal qiladi va o'rnatish haqida biror xulosa chiqarishdan oldin buni qilishga arziydi:

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

Chiqarishlar xizmatni bir nechta unit nomi ostida yetkazgan, shuning uchun nordvpn o'rniga nordvpnd ishlatadigan build xuddi shu xatoning mukammal nusxasini yaratadi, holbuki yonida sog'lom xizmat ishlab turadi.

Socket va uning guruhi kirishni hal qiladi

Daemon ishlab turganda ham ruxsatlar sababli ulanish rad etilishi mumkin. O'rnatuvchi nordvpn guruhini yaratadi va socket shunga muvofiq egalik qiladi, shu sababli o'sha guruhdan tashqaridagi foydalanuvchi rad etiladi, xizmat esa butunlay sog'lom.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Guruh a'zoligi sessiya boshlanganda o'qiladi, shuning uchun o'zgartirish o'zingiz qilgan terminalda ishlamayotgandek ko'rinadi. Ishlab turgan sessiya yangi guruhni ko'rishidan oldin yangi kirish shell yoki newgrp kerak. Yangi shellda sinab ko'ring, buyruqni hozir bajargan shellda emas. Aks holda siz tuzatish muvaffaqiyatsiz deb xulosa qilasiz, holbuki u shunchaki hali qo'llanmagan.

Socketning o'ziga egalik o'sha tekshiruvning ikkinchi yarmi. Socketdagi guruhni CLI ishlatayotgan shell xabar qilgan guruhlar bilan solishtiring va ruxsat masalasi qayta o'rnatish o'rniga bir qadamda hal bo'ladi:

ls -l /run/nordvpn
id

Tirik jarayon to'g'ri socketning dalili emas. Boshqa menejer ishga tushirgan daemon yoki boshqa nomli socketni bog'lagan eski paket xuddi shunday xabar beradi. Katalog ro'yxati bu holatlarni bir satrda ajratadi, shu sababli u qayta o'rnatishdan afzal.

Eski paketlashda foydalanuvchi bo'yicha jarayon

Ba'zi paketlash tizimga kirgan foydalanuvchi kontekstida ikkinchi jarayonni ishga tushiradi, ish stoli integratsiyasi uni topishni kutadi. Agar tizim init skripti uni o'sha hisobga tushmasdan ishga tushirsa, CLI hech qaysi sessiya egalik qilmaydigan daemonni qidiradi.

systemd bo'lmagan initda hujjatlashtirilgan tartib rollarni bo'ladi: tizim xizmati bir nom ostida ishlaydi, foydalanuvchi tomonidagi jarayon esa maqsadli hisob ostida chpst -u <user> bilan ishlaydi. Boshqasini taxmin qiladigan ishga tushirish skriptini qo'shishdan oldin o'rnatmangiz aslida qaysi tartibni ishlatishini tekshiring.

Tugatganingizni qanday bilish mumkin

Odatiy sabab — yangilanish, chunki yangi binar eski hech qachon qoldirmagan xizmat holatini kutadi. To'xtatish, qayta yoqish va ishga tushirish shu tartibda uni tozalaydi:

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

Oxirgi buyruq — qabul sinovi. Versiya chop etilsa, socket javob bermoqda, bu esa qolgan har qanday nosozlikni kirish, tarif yoki ulanish sohasiga o'tkazadi va bu maqoladan chiqaradi. Agar javob bersa, shu yerda o'qishni to'xtating va uning o'rniga hisobni ko'ring.

Agar socket hali ham yo'q bo'lsa, nima uchun to'xtaganini ko'rish uchun unit jurnalini o'qing, keyin /run/nordvpn mavjudligini va xizmat hisobi u yerga yoza olishini tekshiring. Ko'tarilib, darhol o'ladigan jarayon o'z sababini o'sha jurnalga yozadi va bir satrni o'qish qayta o'rnatishni bajarishdan tezroq.

O'xshash maqolalar