VPN mijozi ilovalar menyusidan ishga tushadi, tunnel ulanadi, va bitta mashinada tizimga kirgandan keyin belgi hech qachon ko'rinmaydi, xuddi shu paket boshqasida to'g'ri ishlaydi. Uch kuzatuv bitta shikoyatga siqib qo'yiladi: dastur ishga tushdimi, uning interfeysi ko'rinadimi va tunnel ko'tarilganmi. Ishga tushirgichni filtrlash kalitlari bo'lgan ish stoli yozuvi boshqaradi, va bu yozuvning VPN protokoli bilan hech qanday aloqasi yo'q. Qo'llanmani tartib bilan o'ting va uchtadan biri aniq ajralganda to'xtang.

Uchta alohida fakt: ishga tushish, belgi, tunnel

Ish stoli yozuvi dasturni ishga tushiradi. U tray ilovasini o'rnata olmaydi va ilova ishlatadigan protokolni qo'llab-quvvatlamaydigan panelda indikator chiqara olmaydi. Agar jarayon allaqachon ishlayotgan bo'lsa, ishga tushish savoliga javob berilgan va siz buning o'rniga integratsiya muammosini ko'rib turibsiz.

Tunnel yana uchinchi fakt. Yo'qolgan belgi ulanish uzilganiga dalil emas, va belgini «tuzatish» uchun mijozni o'ldirib qayta ishga tushirish ishlab turgan tunnelni sababsiz to'xtatishning aynan o'zidir. Foydalanuvchilar yo'qolgan belgi va buzilgan tunnelni bir gapda xabar qiladi, shuning uchun ikkalasini qog'ozda ajratish kerak.

Biror narsani o'zgartirishdan oldin ularni ajrating. Jarayon bor-yo'qligini, keyin panel indikatorni qo'llab-quvvatlaydimi, va oxirida interfeys ulanish haqida xabar beradimi, tekshiring. Har bir javob boshqa qatlam va boshqa mas'ulga ishora qiladi.

Sessiya haqiqatan o'qiydigan yozuvni toping

Avtoyuklash yozuvlari foydalanuvchi papkasida va tizim papkasida bo'ladi, va fayl nomlari mos kelsa foydalanuvchi nusxasi g'olib bo'ladi. Noto'g'ri yozuvni o'qish o'zgarishning ta'sirsiz ko'rinishining eng keng tarqalgan sababidir. Biror narsani tahrirlashdan oldin ikkala papkani ham ro'yxatga oling va sessiya haqiqatan qaysi faylni yuklashini yozib qo'ying.

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

Muhit o'zgaruvchisi filtrlash kalitlari solishtiriladigan sessiya nomini chop etadi, va bu odatda ikki nuqta bilan ajratilgan ro'yxat. Uni yozuvdagi qiymatlar bilan so'zma-so'z solishtiring, chunki bu nomlar sessiya tavsifi emas, katta-kichik harflarga sezgir konfiguratsiya tafsilotlari. Qiymat GNOME bilan mos kelmaydi: gnome, va bundan kelib chiqadigan sukunatga hech qanday xato xabari biriktirilmagan. Taxmin qilish o'rniga uni chop eting.

Agar bir xil fayl nomi ikkala papkada bo'lsa, foydalanuvchi nusxasi muhim. Tizim faylini tahrirlab, nega hech narsa o'zgarmadi deb hayron bo'lish juda keng tarqalgan yo'qotilgan soatdir.

Filtrlash kalitlarini tartib bilan o'qing

Quyidagi namuna yozuv sessiya dasturni ishga tushiradimi-yo'qmi hal qiladigan kalitlarni ko'rsatadi. Bu parcha, to'liq ishga tushirgich emas, va qiymatlar xayoliy yo'lga tegishli.

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

OnlyShowIn yozuvni sanab o'tilgan muhitlar bilan cheklaydi va NotShowIn sanab o'tilganlarni istisno qiladi. Ikkalasi bitta yozuvda uchraganida spetsifikatsiya foydali xatti-harakatni belgilamaydi, shuning uchun ikkalasini ham o'z ichiga olgan faylni aqlli kombinatsiya emas, nuqson deb biling. Ikkinchisini qo'shib, ustuvorlik qoidasiga umid bog'lash o'rniga keraksiz kalitni olib tashlang.

TryExec sessiya uni ishga tushirishdan oldin bajariladigan fayl bor-yo'qligini so'raydi. Shuning uchun eski o'rnatishdan qolgan yo'l yangi paket menyudan ishga tushirilganda ishlasa ham avtoyuklashni bostiradi, va bu nosozlik aynan ish stoli filtriga o'xshaydi.

Foydalanuvchi darajasida bekor qiling, tizim darajasida emas

Filtr bu mashina uchun haqiqatan noto'g'ri bo'lsa, tizim yozuvini foydalanuvchi papkasiga ko'chirib, nusxani o'zgartiring. XDG avtoyuklash qoidalariga muvofiq bir xil nomli foydalanuvchi yozuvi ustuvorlikka ega, va Hidden=true tizim faylini o'chirmasdan yozuvni o'chiradi.

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

Tizimdan chiqishdan oldin natijani tekshiring, chunki noto'g'ri shakllangan yozuv jimgina e'tiborsiz qoldiriladi va keyingi sinov sizga hech narsa aytmaydi. Paketni qayta o'rnatish bekor qilishingizni olib tashlamaydi, bu maqsad va uning mavjudligini yozib qo'yishning sababi ham. Fayl yo'lini chiptaga yozing, shunda keyingi odam bekor qilishni qaytadan chiqarish o'rniga topadi.

Buni umumiy tizim ishga tushirgichlarini tahrirlashdan afzal ko'ring, chunki u mashinadagi har bir foydalanuvchining xatti-harakatini o'zgartiradi va xuddi shu tarzda ko'rib chiqilmaydi. Foydalanuvchi darajasidagi bekor qilish bir joyda ko'rinadi, bitta faylni o'chirish bilan qaytariladi va chiptada oson tushuntiriladi. Tizim fayli sotuvchi yuborgan holicha qoladi, shuning uchun paket yangilanishi sizning mulohazangizni jimgina bekor qilmaydi.

Tunnelga tegmasdan ishga tushishni tasdiqlang

Tizimdan chiqib, qayta kiring, so'ng panelga qarashdan oldin jarayon borligini tasdiqlang. Muvaffaqiyatli ishga tushish va ko'rinadigan belgi ikki xil natijadir, va faqat ikkinchisiga ish stoli integratsiyasi ishi kerak. Ularni aralashtirish sizni butun vaqt ishlab turgan paketni qayta o'rnatishga yuboradi.

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

Agar jarayon yo'q bo'lsa, yozuvni qolgan filtr yoki eskirgan TryExec yo'l uchun qayta o'qing. Agar mavjud bo'lsa, ishga tushirgich ishladi va yo'qolgan belgi panelning indikator qo'llab-quvvatlashiga oid alohida muammo, siz hozir tahrirlagan yozuvga emas.

Uch kuzatuvni chiptaga yozing: ishga tushdi, ko'rinadi, ulandi. Bu yozuv keyingi odamning xuddi shu uch tomonlama chalkashlikni takrorlashining oldini oladi va qaysi qatlamga hali ish kerakligini aniqlashtiradi.

O'xshash maqolalar