nordvpn daemonun əlçatmaz olduğunu deyir: socket, qrup yoxsa unit?
Tunel tamamilə qaydasında ola bilər; CLI sadəcə nordvpnd ilə socket əlaqəsini itirib. Komandadan unit-ə, oradan socket icazələrinə keçin və ilk uğursuzluqda dayanın.
nordvpn işə salındıqda əlçatmaz daemon barədə mesaj almaq, adətən artıq gecikdiyiniz anda gələn dar bir şikayətdir. Bu mesaj tunelin işləyib-işləmədiyi barədə heç nə demir, çünki CLI yalnız ön hissədir: o, Unix socket üzərində fon prosesi ilə danışır və mesaj həmin söhbətin baş tutmadığını bildirir. Komandadan bayıra doğru get və yalan çıxan ilk şeydə dayan.
Xətanın göründüyü yerdən başlayın
Burada iki proses iştirak edir və onları qarışdırmaq məsələni sirli edən şeydir. Daemon tunelin sahibidir və /run/nordvpn/ altındakı socket-də dinləyir. Yazdığınız komanda interfeyslərə özü toxunmaq əvəzinə həmin socket-ə qoşulur.
Socket yoxdursa və ya bağlantını rədd edirsə, CLI-nin soruşacaq kimsəsi olmur, ona görə də eyni şikayətin istifadəçi-daemon və ya sistem-daemon variantını bildirir. Bu variantlardan biri yolu birbaşa göstərir və bu, bütün söhbətin ən faydalı cümləsidir.
Hər şeydən əvvəl unit-i yoxlayın
Xidmət menecerindən daemonun işləyib-işləmədiyini soruşun, işləmirsə onu bir addımda başladın və aktivləşdirin:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Unit mövcuddur, lakin aktiv deyilsə, enable --now həm onu başladır, həm də növbəti yükləməni təşkil edir. Unit yoxdursa, paket güman etdiyiniz paket deyil və quraşdırılmış ad qeydlərinizdəki addan daha vacibdir. Bu, həmin ad altında heç vaxt quraşdırılmamış xidməti aktivləşdirməyə iyirmi dəqiqə sərf edənə qədər pedantik bir fərq kimi görünür. Mövcud olanı oxuyun, sonra ona uyğun hərəkət edin.
Unit fayllarını sadalamaq bunu bir komandada həll edir və quraşdırma barədə nəticə çıxarmazdan əvvəl bunu etməyə dəyər:
systemctl list-unit-files 'nordvpn*'
service --status-all
Buraxılışlar xidməti birdən çox unit adı altında göndərib, ona görə də nordvpn əvəzinə nordvpnd istifadə edən qurğu bu xətanın mükəmməl surətini verəcək, halbuki sağlam xidmət elə yanında işləyir.
Socket və onun qrupu girişi müəyyən edir
Daemon işlədiyi halda belə, bağlantı icazələrə görə rədd edilə bilər. Quraşdırıcı nordvpn qrupu yaradır və socket buna uyğun sahibləndirilir, ona görə də bu qrupdan kənar istifadəçi xidmət tam sağlam ikən rədd edilir.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Qrup üzvlüyü sessiya başlayanda oxunur, buna görə də dəyişiklik onu etdiyiniz terminalda işləməmiş kimi görünür. İşləyən sessiyanın yeni qrupu görməsi üçün təzə giriş qabığı və ya newgrp tələb olunur. Komandanı yeni qabıqda yoxlayın, elə indicə icra edən qabıqda yox. Əks halda, düzəliş sadəcə hələ tətbiq olunmadığı halda onun uğursuz olduğu qənaətinə gələcəksiniz.
Socket-in özünün sahibliyi həmin yoxlamanın ikinci yarısıdır. Socket-dəki qrupu CLI-ni işlədən qabıqda göstərilən qruplarla müqayisə edin və icazə sualı yenidən quraşdırmaq əvəzinə bir addımda cavablanır:
ls -l /run/nordvpn
id
Canlı proses düzgün socket-in sübutu deyil. Başqa menecer tərəfindən başladılan daemon və ya fərqli adlı socket bağlamış köhnə paket eyni cür bildirir. Qovluq siyahısı bu halları bir sətirdə ayırd edir, buna görə də yenidən quraşdırmadan üstündür.
Köhnə paketlərdə istifadəçi üzrə proses
Bəzi paketlər daxil olmuş istifadəçi kontekstində ikinci proses işlədir və masaüstü inteqrasiyası onu tapmağı gözləyir. Sistem init skripti həmin hesaba keçmədən onu başladırsa, CLI heç bir sessiyanın sahibi olmadığı daemon axtarır.
systemd olmayan init-də sənədləşdirilmiş düzülüş rolları bölür: sistem xidməti bir ad altında, istifadəçi tərəfi proses isə hədəf hesab altında chpst -u <user> ilə işləyir. Digərini fərz edən başlatma skripti əlavə etməzdən əvvəl quraşdırmanızın hansı düzülüşü həqiqətən istifadə etdiyini yoxlayın.
Bitdiyini necə bilmək olar
Adi tətik yeniləmədir, çünki yeni binar köhnənin heç vaxt tərk etmədiyi xidmət vəziyyətini gözləyir. Dayandırmaq, yenidən aktivləşdirmək və başlatmaq bu sıra ilə bunu təmizləyir:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Son komanda qəbul testidir. Çap olunmuş versiya socket-in cavab verdiyini bildirir, bu da qalan bütün nasazlıqları giriş, plan və ya bağlantı sahəsinə keçirir və bu məqalədən çıxarır. Cavab verirsə, burada oxumağı dayandırın və əvəzinə hesaba baxın.
Socket hələ də yoxdursa, nədən çıxdığını görmək üçün unit jurnalını oxuyun, sonra /run/nordvpn mövcud olduğunu və xidmət hesabının ora yaza bildiyini yoxlayın. Qalxıb dərhal ölən proses öz səbəbini həmin jurnalda qeyd edir və bir sətir oxumaq yenidən quraşdırmaqdan sürətlidir.