Bir OpenVPN örneği açılışta tanımadığınız bir adla ortaya çıkıyor ve onu durdurmak bir sonraki yeniden başlatmaya kadar işe yarıyor. Bu desen, süreci kaldırdığınız ama etkinleştirmeyi kaldırmadığınız anlamına gelir. İkisi farklı nesnelerdir ve yalnızca biri bir durum ekranında görünür. Etkinleştirmeyi bulmak dört salt okunur komut ve bir karar gerektirir.

Önce tam birimi adlandırın

Profil dosyası adından değil, journaldaki birim adından yola çıkın. Örnek openvpn@, openvpn-client@, openvpn-server@ veya dağıtıma özgü bir ad taşıyabilir ve adı tahmin etmek sizi yanlış şablona götürür. Durum çıktısı gerçekte çalışan birimi adlandırır ve buradaki tek önemli ad budur. Herhangi bir sonek dahil olmak üzere tam olarak kopyalayın.

Aşağıdaki komutlar hiçbir şeyi değiştirmeden bu birimi tanımlar. systemctl show parça yolunu, kaynak yolunu, birim dosyasının durumunu, varsa drop-in'leri ve onu neyin tetiklediğini bildirir. list-dependencies --reverse hangi yüklü birimlerin ona işaret ettiğini gösterir. İkisi de salt okunurdur, bu yüzden bir teori kurmadan önce onları çalıştırın.

Gözlemlenen adı her yerde değiştirin. Kopyalanmış örnek bir ad, yanlış hizmeti araştırmanın en yaygın yoludur ve hiç çalışmamış bir birim hakkında kendinden emin yanıtlar üretir.

Dosya adını öğrenmek için şablonu okuyun

Bir örnek birimi, bir şablonun genişlemesidir ve şablon hangi yapılandırma dosyasını okuduğuna karar verir. Örneğe özgü bir yer tutucuyla biten bir komut satırı, örnek adı artı sonek olarak çözülür. Sonek .conf ve örnek old adını taşıyorsa dosya old.conf olur. Örneği old.conf olarak adlandırırsanız, aynı şablon old.conf.conf ister.

Bu ayrıntı bir kopya sınıfını açıklar. Biri yanlış ad altında ikinci bir örnek ekler, ilki çalışmaya devam eder ve sunucu iki tünelle ve kafa karıştırıcı tek bir günlükle kalır.

Düzenlediğinizi hatırladığınız dosya yerine etkin şablonu okuyun. Bir drop-in komut satırını değiştirebilir ve açılışta çalışan şey bu değiştirilmiş sürümdür.

Açılış işlemine nasıl girdiğini izleyin

Üç yol yaygındır: bir hedeften gelen wants bağlantısı, başka bir birimden gelen gereksinim veya bir paket üretecinin oluşturduğu birim. Ters bağımlılık listesi ilk ikisini yüklenmiş grafik girdileri olarak kapsar. Bir zamanlayıcıyı, kancayı veya dış isteği kapsamaz, bu yüzden liste tam bir denetim değil kanıttır.

/run/systemd/generator altındaki üretilmiş çıktı bir üründür, kaynak değildir. Onu düzenlemek yalnızca bir sonraki üretime kadar dayanır, bu yüzden orada uygulanan bir düzeltme başarılı görünür ve sonra geri döner.

Üretecin nereden okuduğunu varsaymadan önce paketin belgelenmiş girdisini kontrol edin. Belgelenmemiş bir dizin taraması, bir birimin etkinleştirme bağlantısı olmadan görünmesinin olağan nedenidir.

Etkinleştirmeyi kaldırın, yalnızca süreci değil

Örnek doğrudan etkinleştirilmiş ve gerçekten eskimişse, systemctl disable --now onu durdurur ve açılış bağlantısını tek adımda kaldırır. Önce bu tünelin sunucuya tek yönetim yolunuz olmadığını kontrol edin. Komut bir yaşam döngüsü örneğidir, makinedeki her VPN'i durdurma önerisi değildir. Kontrolü komuttan önce yapın, sonra değil.

İki yarı ayrılabilir ve sık sık karıştırılır. Devre dışı bırakma çalışan bir hizmeti durdurmaz ve durdurma etkinleştirmeyi kaldırmaz, bu yüzden kısmi bir komut açılışta geri dönen bir sorunu açıklar.

Devre dışı bırakılmış bir birim yine de başka bir birim veya açık bir istek tarafından başlatılabilir. Etkinleştirme bir üretece aitse, çıktısını devre dışı bırakmak yerine üretecin girdisini düzeltin. Maskeleme daha fazla yolu engeller ama bağımlılıkları bozabilir, bu yüzden anlamanın yerini tutmaz.

Durum ekranıyla değil, yeniden başlatmayla doğrulayın

Birim tanımları veya üreteç girdileri değiştiyse systemd'yi yeniden yükleyin, ardından ortaya çıkan durumu inceleyin. Daemon yeniden yüklemesi çalışan bir tünele yeni profil itmez, bu yüzden iki kontrol ayrıdır. Bir yeniden başlatma planlayın ve amaçlanan tünel çalışmaya devam ederken örneğin yok kaldığını doğrulayın.

Sahiplik anlaşılana kadar eski profili saklayın, sonra amaçlanan süreçle kaldırın. Başarı, bir ekranda eksik olan başarısız bir birim değil, olmayan bir birim ve çalışan bir erişim yoludur.

İlgili makaleler