VPN müştərisi tətbiq menyusundan başlayır, tunel qoşulur və bir maşında girişdən sonra nişan heç vaxt görünmür, halbuki eyni paket digər maşında düzgün işləyir. Üç müşahidə bir şikayətdə birləşdirilir: proqramın başlaması, interfeysinin görünməsi və tunelin qoşulmuş olması. Başladıcı filtrləmə açarları olan iş masası qeydi ilə idarə olunur və həmin qeydin VPN protokolu ilə heç bir əlaqəsi yoxdur. Təlimatı ardıcıllıqla işləyin və bu üçündən biri aydın şəkildə ayrıldıqda dayanın.

Üç ayrı fakt: başlama, nişan, tunel

İş masası qeydi proqramı başladır. O, sistem nimçəsi tətbiqi quraşdıra bilməz və tətbiqin istifadə etdiyi protokolu dəstəkləməyən panelə indikator çıxara bilməz. Əgər proses artıq işləyirsə, başlama sualı cavablanıb və siz əvəzində inteqrasiya problemi ilə üz-üzəsiniz.

Tunel yenə üçüncü faktdır. İtmiş nişan əlaqənin kəsildiyinə dəlil deyil və nişanı «düzəltmək» üçün müştərini öldürüb yenidən başlatmaq işləyən tunelin səbəbsiz kəsilməsi yoludur. İstifadəçilər itmiş nişanı və pozulmuş tuneli eyni cümlədə bildirir, buna görə də ikisini kağız üzərində ayırmaq lazımdır.

Heç nəyi dəyişməzdən əvvəl onları ayırın. Prosesin olub-olmadığını, sonra panelin indikatoru dəstəklədiyini, sonra interfeysin əlaqə bildirdiyini yoxlayın. Hər cavab fərqli qata və fərqli məsuliyyət sahibinə işarə edir.

Sessiyanın həqiqətən oxuduğu qeydi tapın

Avtostart qeydləri istifadəçi qovluğunda və sistem qovluğunda olur və fayl adları uyğun gəldikdə istifadəçi nüsxəsi üstün gəlir. Yanlış olanı oxumaq dəyişikliyin təsirsiz görünməsinin ən çox rast gəlinən səbəbidir. Hər hansı düzəlişdən əvvəl hər iki qovluğu siyahıya alın və sessiyanın həqiqətən hansı faylı yükləyəcəyini qeyd 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

Mühit dəyişəni filtrləmə açarlarının müqayisə olunduğu sessiya adını çap edir və bu, adətən iki nöqtə ilə ayrılmış siyahıdır. Onu qeyddəki dəyərlərlə hərfi müqayisə edin, çünki bu adlar sessiyanın təsviri deyil, böyük-kiçik hərfə həssas konfiqurasiya detallarıdır. GNOME dəyəri gnome ilə uyğun gəlmir və yaranan sükutda heç bir xəta mesajı olmur. Onu fərz etmək əvəzinə çap edin.

Eyni fayl adı hər iki qovluqda varsa, vacib olan istifadəçi nüsxəsidir. Sistem faylını redaktə edib heç nəyin niyə dəyişmədiyini düşünmək çox yayılmış itirilmiş saatdır.

Filtrləmə açarlarını sıra ilə oxuyun

Aşağıdakı nümunə qeyd sessiyanın proqramı başladıb-başlatmayacağına qərar verən açarları göstərir. Bu, tam başladıcı deyil, fraqmentdir və dəyərlər uydurma yola aiddir.

[Desktop Entry]
Type=Application
Name=Example VPN
Exec=/opt/example-vpn/client --minimized
TryExec=/opt/example-vpn/client
OnlyShowIn=GNOME;

OnlyShowIn qeydi sadalanan mühitlərlə məhdudlaşdırır və NotShowIn sadalananları istisna edir. Spesifikasiya hər ikisi bir qeyddə görünəndə faydalı davranış müəyyən etmir, ona görə də hər ikisini saxlayan faylı ağıllı kombinasiya deyil, qüsur kimi qəbul edin. İkincisini əlavə edib üstünlük qaydasına ümid etmək əvəzinə lazım olmayan açarı silin.

TryExec sessiya onu başlatmazdan əvvəl icra faylının mövcud olub-olmadığını soruşur. Buna görə köhnə quraşdırmadan qalmış yol, yeni paket menyudan başladıldıqda işləsə də, avtostartı sıxışdırır və bu nasazlıq iş masası filtrinə tam bənzəyir.

Sistem səviyyəsində deyil, istifadəçi səviyyəsində ləğvetmə

Filtr bu maşın üçün həqiqətən yanlışdırsa, sistem qeydini istifadəçi qovluğuna köçürün və nüsxəni dəyişin. XDG avtostart qaydalarına uyğun olaraq, eyni adlı istifadəçi qeydi üstünlük təşkil edir və Hidden=true sistem faylını silmədən onu deaktiv edir.

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

Çıxış etməzdən əvvəl nəticəni yoxlayın, çünki qüsurlu qeyd səssizcə nəzərə alınmır və növbəti test sizə heç nə demir. Paketi yenidən quraşdırmaq ləğvetmənizi silməyəcək, məqsəd də budur və onun mövcudluğunu qeyd etməyin səbəbi də budur. Biletə fayl yolunu yazın ki, növbəti şəxs ləğvetməni yenidən çıxarmaq əvəzinə tapsın.

Bunu paylaşılan sistem başladıcılarını redaktə etməkdənsə üstün tutun, çünki bu, maşındakı hər istifadəçi üçün davranışı dəyişir və eyni şəkildə nəzərdən keçirilə bilməz. İstifadəçi səviyyəsində ləğvetmə bir yerdə görünür, bir faylı silməklə geri qaytarıla bilir və biletə asan izah olunur. Sistem faylı satıcının göndərdiyi kimi qalır, ona görə də paket yeniləməsi sizin əsaslandırmanızı səssizcə ləğv etmir.

Tunelə toxunmadan başlamanı təsdiqləyin

Çıxış edin və yenidən daxil olun, sonra panelə baxmazdan əvvəl prosesin mövcud olduğunu təsdiqləyin. Uğurlu başlama və görünən nişan iki fərqli nəticədir, və yalnız ikincisi iş masası inteqrasiyası işi tələb edir. Onları qarışdırmaq sizi bütün müddət işləyən paketi yenidən quraşdırmağa göndərir.

pgrep -af example-vpn
systemctl --user status example-vpn.service
journalctl --user -b --no-pager | grep -i example-vpn | tail -20

Proses yoxdursa, qeydi qalan filtr və ya köhnəlmiş TryExec yolu üçün yenidən oxuyun. Proses varsa, başladıcı işləyib və itmiş nişan panelin indikator dəstəyi ilə bağlı ayrı bir problemdir, indicə redaktə etdiyiniz qeydlə deyil.

Biletə üç müşahidəni qeyd edin: başladı, görünür, qoşuldu. Bu qeyd növbəti şəxsin eyni üçtərəfli çaşqınlığı təkrarlamasının qarşısını alır və hansı qatın hələ işə ehtiyacı olduğunu aydınlaşdırır.

Əlaqəli məqalələr