Yalnızca tek bir masaüstünde çalışan VPN otomatik başlatma girdisini düzeltmek
Bir masaüstünde başlayıp diğerinde başlamayan VPN başlatıcısı, tünel arızası değil masaüstü girdisindeki bir filtredir. Önce OnlyShowIn, TryExec ve geçersiz kılmayı okuyun.
VPN istemcisi uygulama menüsünden başlıyor, tünel bağlanıyor ve bir makinede oturum açtıktan sonra simge hiç görünmüyor, oysa aynı paket başka bir makinede düzgün davranıyor. Üç gözlem tek bir şikâyete sıkıştırılıyor: program başladı mı, arayüzü görünüyor mu ve tünel ayakta mı. Başlatıcı, filtreleme anahtarları olan bir masaüstü girdisiyle yönetiliyor ve bu girdinin VPN protokolüyle hiçbir ilgisi yok. Kılavuzu sırayla izleyin ve üçünden biri temiz biçimde ayrıldığında durun.
Üç ayrı olgu: başlatma, simge, tünel
Masaüstü girdisi bir program başlatır. Bir tepsi uygulaması kuramaz ve uygulamanın kullandığı protokolü desteklemeyen bir panelde gösterge çıkaramaz. Süreç zaten çalışıyorsa başlatma sorusu yanıtlanmıştır ve bunun yerine bir entegrasyon sorununa bakıyorsunuz.
Tünel yine üçüncü bir olgu. Eksik simge, bağlantının düştüğünün kanıtı değildir ve simgeyi «onarmak» için istemciyi öldürüp yeniden başlatmak, çalışan bir tünelin sebepsiz kesilmesinin tam olarak yoludur. Kullanıcılar eksik simgeyi ve bozuk tüneli aynı cümlede bildiriyor; bu yüzden ikisi kâğıt üzerinde ayrılmalı.
Herhangi bir şeyi değiştirmeden önce onları ayırın. Sürecin var olup olmadığını, ardından panelin göstergeyi destekleyip desteklemediğini ve son olarak arayüzün bağlantı bildirip bildirmediğini kontrol edin. Her yanıt farklı bir katmana ve farklı bir sorumluya işaret eder.
Oturumun gerçekten okuduğu girdiyi bulun
Otomatik başlatma girdileri kullanıcı dizininde ve sistem dizininde yaşar ve dosya adları eşleştiğinde kullanıcı kopyası kazanır. Yanlış girdiyi okumak, bir değişikliğin etkisiz görünmesinin en yaygın nedenidir. Herhangi bir şeyi düzenlemeden önce iki dizini de listeleyin ve oturumun gerçekte hangi dosyayı yükleyeceğini not edin.
ls -l ~/.config/autostart/ /etc/xdg/autostart/ echo "$XDG_CURRENT_DESKTOP" grep -H -E '^(OnlyShowIn|NotShowIn|TryExec|Hidden|Exec)=' ~/.config/autostart/*.desktop /etc/xdg/autostart/*.desktop
Ortam değişkeni, filtreleme anahtarlarının karşılaştırıldığı oturum adını yazdırır ve bu genellikle iki nokta üst üste ile ayrılmış bir listedir. Onu girdideki değerlerle birebir karşılaştırın, çünkü bu adlar oturumun tanımı değil, büyük-küçük harfe duyarlı yapılandırma ayrıntılarıdır. Bir GNOME değeri gnome değeriyle eşleşmez ve bundan doğan sessizliğe hiçbir hata iletisi eşlik etmez. Varsaymak yerine yazdırın.
Aynı dosya adı iki dizinde de varsa önemli olan kullanıcı kopyasıdır. Sistem dosyasını düzenleyip neden hiçbir şeyin değişmediğini merak etmek çok yaygın bir kayıp saattir.
Filtreleme anahtarlarını sırayla okuyun
Aşağıdaki örnek girdi, bir oturumun programı başlatıp başlatmayacağına karar veren anahtarları gösterir. Bu bir parçadır, tam bir başlatıcı değildir ve değerler kurgusal bir yola aittir.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn girdiyi listelenen ortamlarla sınırlar ve NotShowIn listelenenleri dışlar. İkisi aynı girdide göründüğünde belirtim yararlı bir davranış tanımlamaz, bu yüzden ikisini birden içeren dosyayı akıllı bir birleşim değil kusur olarak değerlendirin. İkincisini ekleyip bir öncelik kuralı ummak yerine gereksiz anahtarı kaldırın.
TryExec oturum onu başlatmadan önce çalıştırılabilir dosyanın var olup olmadığını sorar. Bu yüzden eski bir kurulumdan kalan bir yol, yeni paket menüden başlatıldığında çalışsa bile otomatik başlatmayı bastırır ve bu arıza tam olarak bir masaüstü filtresi gibi görünür.
Kullanıcı düzeyinde geçersiz kılın, sistem düzeyinde değil
Filtre bu makine için gerçekten yanlışsa, sistem girdisini kullanıcı dizinine kopyalayın ve kopyayı değiştirin. XDG otomatik başlatma kurallarına göre aynı adlı kullanıcı girdisi önceliklidir ve Hidden=true sistem dosyasını silmeden bir girdiyi devre dışı bırakır.
mkdir -p ~/.config/autostart cp /etc/xdg/autostart/example-vpn.desktop ~/.config/autostart/ sed -i '/^OnlyShowIn=/d' ~/.config/autostart/example-vpn.desktop desktop-file-validate ~/.config/autostart/example-vpn.desktop
Oturumu kapatmadan önce sonucu doğrulayın, çünkü hatalı biçimlendirilmiş bir girdi sessizce yok sayılır ve sonraki test size hiçbir şey söylemez. Paketi yeniden kurmak geçersiz kılmanızı kaldırmaz; amaç budur ve var olduğunu kaydetmenin nedeni de budur. Dosya yolunu bilete yazın ki sonraki kişi geçersiz kılmayı yeniden türetmek yerine bulsun.
Bunu paylaşılan sistem başlatıcılarını düzenlemeye tercih edin; o, makinedeki her kullanıcının davranışını değiştirir ve aynı şekilde gözden geçirilemez. Kullanıcı düzeyinde bir geçersiz kılma tek bir yerde görünür, bir dosyayı silerek geri alınabilir ve bilette kolayca açıklanır. Sistem dosyası satıcının gönderdiği gibi kalır, böylece bir paket güncellemesi gerekçenizi sessizce boşa çıkarmaz.
Tünele dokunmadan başlatmayı doğrulayın
Oturumu kapatıp yeniden açın, sonra panele bakmadan önce sürecin var olduğunu doğrulayın. Başarılı bir başlatma ve görünür bir simge iki farklı sonuçtur, ve yalnızca ikincisi masaüstü entegrasyonu işi gerektirir. İkisini karıştırmak sizi baştan beri çalışan bir paketi yeniden kurmaya gönderir.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Süreç yoksa, girdiyi kalan bir filtre veya eskimiş bir TryExec yol için yeniden okuyun. Varsa başlatıcı çalıştı ve eksik simge panelin gösterge desteğiyle ilgili ayrı bir sorundur, az önce düzenlediğiniz girdiyle değil.
Üç gözlemi bilete kaydedin: başladı, görünür, bağlandı. Bu kayıt sonraki kişinin aynı üç yönlü karışıklığı tekrarlamasını önler ve hangi katmanın hâlâ işe ihtiyacı olduğunu netleştirir.