Menjalankan nordvpn dan mendapat pesan tentang daemon yang tidak terjangkau adalah keluhan sempit yang biasanya datang ketika Anda sudah terlambat. Pesan itu tidak mengatakan apa pun tentang apakah terowongan bekerja, karena CLI hanyalah bagian depan: ia berbicara dengan proses latar belakang lewat socket Unix, dan pesan itu berarti percakapan tersebut tidak terjadi. Berjalanlah keluar dari perintah dan berhentilah pada hal pertama yang ternyata keliru.

Mulailah dari tempat kesalahan muncul

Ada dua proses yang terlibat, dan mencampuradukkannya adalah yang membuat ini terasa misterius. Daemon memiliki terowongan dan mendengarkan pada socket di bawah /run/nordvpn/. Perintah yang Anda ketik terhubung ke socket itu alih-alih menyentuh antarmuka sendiri.

Ketika socket hilang atau menolak koneksi, CLI tidak punya siapa pun untuk ditanya, jadi ia melaporkan varian «daemon pengguna» atau «daemon sistem» dari keluhan yang sama. Salah satu varian itu menyebut jalur secara langsung, dan itulah kalimat paling berguna dalam seluruh pertukaran.

Periksa unit sebelum hal lain

Tanyakan kepada manajer layanan apakah daemon berjalan, lalu jalankan dan aktifkan dalam satu langkah jika tidak:

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

Jika unit ada tetapi tidak aktif, enable --now menjalankannya dan mengatur boot berikutnya sekaligus. Jika unit tidak ada, paket bukan yang Anda anggap, dan nama yang terpasang lebih penting daripada nama di catatan Anda. Itu terdengar seperti perbedaan yang berlebihan sampai Anda menghabiskan dua puluh menit mengaktifkan layanan yang tidak pernah dipasang dengan label itu. Baca apa yang ada, lalu bertindaklah berdasarkan itu.

Mendaftar berkas unit menyelesaikan itu dengan satu perintah, dan itu layak dilakukan sebelum Anda menyimpulkan apa pun tentang pemasangan:

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

Rilis telah mengirimkan layanan dengan lebih dari satu nama unit, jadi build yang memakai nordvpn alih-alih nordvpnd akan menghasilkan salinan sempurna dari kesalahan ini sementara layanan yang sehat berjalan tepat di sebelahnya.

Socket dan grupnya menentukan akses

Bahkan dengan daemon berjalan, koneksi bisa ditolak karena izin. Pemasang membuat grup nordvpn, dan socket dimiliki sesuai itu, jadi pengguna di luar grup tersebut ditolak sementara layanannya sepenuhnya sehat.

sudo usermod -aG nordvpn "$USER"
newgrp nordvpn

Keanggotaan grup dibaca saat sesi dimulai, itulah sebabnya perubahan tampak tidak bekerja di terminal tempat Anda melakukannya. Diperlukan shell login baru atau newgrp sebelum sesi yang berjalan melihat grup baru. Ujilah di shell baru, bukan di shell yang baru saja menjalankan perintah. Jika tidak, Anda akan menyimpulkan perbaikannya gagal padahal ia belum diterapkan.

Kepemilikan socket itu sendiri adalah paruh kedua pemeriksaan tersebut. Bandingkan grup pada socket dengan grup yang dilaporkan di shell yang menjalankan CLI, dan pertanyaan izin terjawab dalam satu langkah alih-alih memasang ulang:

ls -l /run/nordvpn
id

Proses yang hidup bukan bukti socket yang benar. Daemon yang dijalankan oleh manajer lain, atau paket lama yang mengikat socket dengan nama berbeda, melaporkan dengan cara yang sama. Daftar direktori memisahkan kasus-kasus itu dalam satu baris, itulah sebabnya ia mengalahkan pemasangan ulang.

Proses per pengguna pada kemasan lama

Sebagian kemasan menjalankan proses kedua dalam konteks pengguna yang masuk, yang diharapkan ditemukan oleh integrasi desktop. Jika skrip init sistem menjalankannya tanpa turun ke akun itu, CLI mencari daemon yang tidak dimiliki sesi mana pun.

Pada init tanpa systemd, tata letak yang didokumentasikan membagi peran: layanan sistem berjalan dengan satu nama dan proses di sisi pengguna berjalan dengan akun target memakai chpst -u <user>. Periksa tata letak mana yang sebenarnya dipakai pemasangan Anda sebelum menambahkan skrip awal yang mengandaikan yang lain.

Cara mengetahui Anda sudah selesai

Pembaruan adalah pemicu yang biasa, karena biner baru mengharapkan keadaan layanan yang tidak pernah ditinggalkan biner lama. Menghentikan, mengaktifkan ulang, dan menjalankan dalam urutan itu membereskannya:

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

Perintah terakhir adalah uji penerimaan. Versi yang tercetak berarti socket menjawab, yang memindahkan setiap gangguan yang tersisa ke wilayah login, paket, atau konektivitas dan mengeluarkannya dari artikel ini. Jika menjawab, berhentilah membaca di sini dan lihat akunnya.

Jika socket masih hilang, baca jurnal unit untuk melihat mengapa ia berhenti, lalu periksa bahwa /run/nordvpn ada dan akun layanan dapat menulis di sana. Proses yang naik lalu langsung mati mencatat alasannya di jurnal itu, dan satu baris lebih cepat dibaca daripada memasang ulang.

Artikel terkait