nordvpn daemon'a ulaşamadığını söylüyor: socket, grup mu unit mi?
Tünel tamamen sağlıklı olabilir; CLI yalnızca nordvpnd'ye giden socket'ini kaybetti. Komuttan unit'e, ardından socket izinlerine gidin ve ilk hatada durun.
nordvpn'i çalıştırıp ulaşılamayan bir daemon hakkında mesaj almak, genellikle zaten geç kaldığınızda gelen dar bir şikâyettir. Tünelin çalışıp çalışmadığı hakkında hiçbir şey söylemez, çünkü CLI yalnızca bir ön yüzdür: bir Unix socket üzerinden arka plan süreciyle konuşur ve mesaj, o konuşmanın gerçekleşmediği anlamına gelir. Komuttan dışarı doğru yürüyün ve yanlış olduğu ortaya çıkan ilk şeyde durun.
Hatanın göründüğü yerden başlayın
Burada iki süreç rol oynar ve bunları karıştırmak işi gizemli kılan şeydir. Daemon tünele sahiptir ve /run/nordvpn/ altındaki bir socket'i dinler. Yazdığınız komut, arayüzlere kendisi dokunmak yerine o socket'e bağlanır.
Socket eksik olduğunda ya da bağlantıyı reddettiğinde, CLI'nin soracak kimsesi yoktur, bu yüzden aynı şikâyetin «kullanıcı daemon'u» veya «sistem daemon'u» sürümünü bildirir. Bu sürümlerden biri yolu doğrudan adlandırır ve bu, tüm konuşmanın en yararlı cümlesidir.
Her şeyden önce unit'i kontrol edin
Hizmet yöneticisine daemon'un çalışıp çalışmadığını sorun, çalışmıyorsa tek adımda başlatın ve etkinleştirin:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Unit varsa ama etkin değilse, enable --now onu başlatır ve sonraki açılışı da düzenler. Unit yoksa paket sandığınız paket değildir ve kurulu ad, notlarınızdaki addan daha önemlidir. Bu, o etiket altında hiç kurulmamış bir hizmeti etkinleştirmek için yirmi dakika harcayana kadar bilgiççe bir ayrım gibi görünür. Var olanı okuyun ve ona göre hareket edin.
Unit dosyalarını listelemek bunu tek komutla çözer ve kurulum hakkında herhangi bir sonuca varmadan önce bunu yapmaya değer:
systemctl list-unit-files 'nordvpn*'
service --status-all
Sürümler hizmeti birden fazla unit adı altında gönderdi, bu yüzden nordvpn yerine nordvpnd kullanan bir yapı, hemen yanında sağlıklı bir hizmet çalışırken bu hatanın kusursuz bir kopyasını üretecektir.
Erişime socket ve onun grubu karar verir
Daemon çalışırken bile bağlantı izinler yüzünden reddedilebilir. Kurucu bir nordvpn grubu oluşturur ve socket buna göre sahiplenilir, bu yüzden o grubun dışındaki kullanıcı, hizmet tamamen sağlıklıyken reddedilir.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Grup üyeliği bir oturum başladığında okunur, bu yüzden değişiklik yaptığınız terminalde çalışmıyor gibi görünür. Çalışan oturumun yeni grubu görmesi için yeni bir oturum açma kabuğu veya newgrp gerekir. Komutu yeni çalıştıran kabukta değil, yeni bir kabukta deneyin. Aksi halde düzeltmenin başarısız olduğu sonucuna varırsınız, oysa henüz uygulanmamıştır.
Socket'in sahipliği o kontrolün diğer yarısıdır. Socket'teki grubu, CLI'yi çalıştıran kabuğun bildirdiği gruplarla karşılaştırın; izin sorusu yeniden kurmak yerine tek adımda yanıtlanır:
ls -l /run/nordvpn
id
Canlı bir süreç doğru socket'in kanıtı değildir. Başka bir yönetici tarafından başlatılan daemon ya da farklı adlı bir socket bağlayan eski paket aynı şeyi bildirir. Dizin listesi bu durumları tek satırda ayırır, bu yüzden yeniden kurmaktan iyidir.
Eski paketlemede kullanıcı başına süreç
Bazı paketlemeler oturum açmış kullanıcının bağlamında ikinci bir süreç çalıştırır ve masaüstü tümleşimi bunu bulmayı bekler. Sistem init betiği onu o hesaba inmeden başlatırsa, CLI hiçbir oturumun sahip olmadığı bir daemon arar.
systemd olmayan bir init'te belgelenmiş düzen rolleri böler: sistem hizmeti tek bir ad altında çalışır ve kullanıcı tarafındaki süreç hedef hesap altında chpst -u <user> ile çalışır. Diğerini varsayan bir başlangıç betiği eklemeden önce kurulumunuzun gerçekte hangi düzeni kullandığını kontrol edin.
Bittiğinizi nasıl anlarsınız
Olağan tetikleyici yükseltmedir, çünkü yeni ikili dosya eskisinin asla bırakmadığı bir hizmet durumu bekler. Durdurma, yeniden etkinleştirme ve başlatma bu sırayla bunu temizler:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Son komut kabul testidir. Yazdırılan bir sürüm socket'in yanıt verdiği anlamına gelir; bu, kalan her arızayı oturum açma, plan veya bağlantı alanına taşır ve bu makalenin dışına çıkarır. Yanıt verirse burada okumayı bırakın ve bunun yerine hesaba bakın.
Socket hâlâ eksikse, neden durduğunu görmek için unit günlüğünü okuyun, ardından /run/nordvpn var mı ve hizmet hesabı oraya yazabiliyor mu diye kontrol edin. Ayağa kalkıp hemen ölen bir süreç nedenini o günlüğe kaydeder ve tek bir satırı okumak, yeniden kurulum yapmaktan daha hızlıdır.