Тек бір жұмыс үстелінде ғана іске қосылатын VPN автоқосылу жазбасын түзету
Бір жұмыс үстелінде іске қосылып, екіншісінде қосылмайтын VPN іске қосқышы — туннель ақауы емес, жұмыс үстелі жазбасының сүзгісі. Алдымен OnlyShowIn, TryExec және қайта анықтауды оқыңыз.
VPN клиенті қолданбалар мәзірінен іске қосылады, туннель қосылады, бірақ бір машинада кіргеннен кейін белгіше ешқашан шықпайды, ал сол пакет екіншісінде дұрыс жұмыс істейді. Үш бақылау бір шағымға біріктіріледі: бағдарлама іске қосылды ма, оның интерфейсі көріне ме және туннель көтерілді ме. Іске қосқышты сүзгі кілттері бар жұмыс үстелі жазбасы басқарады, және бұл жазбаның VPN протоколына еш қатысы жоқ. Нұсқаулықты ретімен орындаңыз және үшеуінің біреуі анық бөлінгенде тоқтаңыз.
Үш жеке факт: іске қосылу, белгіше, туннель
Жұмыс үстелі жазбасы бағдарламаны іске қосады. Ол науаның іске асырылуын орната алмайды және қолданба пайдаланатын протоколды қолдамайтын панельде индикатор шығара алмайды. Егер процесс қазірдің өзінде жұмыс істеп тұрса, іске қосылу сұрағы жауап алды және сіз оның орнына интеграция мәселесін көріп отырсыз.
Туннель тағы да үшінші факт. Жоғалған белгіше байланыстың үзілгенінің дәлелі емес, ал клиентті өлтіріп, белгішені «түзету» үшін қайта іске қосу — жұмыс істеп тұрған туннельді себепсіз үзу тәсілі. Пайдаланушылар жоғалған белгіше мен сынған туннельді бір сөйлемде хабарлайды, сондықтан екеуін қағазда бөлу керек.
Бірдеңені өзгертудің алдында оларды бөліңіз. Процестің бар-жоғын, содан кейін панельдің индикаторды қолдайтынын, соңында интерфейстің байланыс туралы хабарлайтынын тексеріңіз. Әр жауап басқа қабат пен басқа жауаптыға нұсқайды.
Сессия шын мәнінде оқитын жазбаны табыңыз
Автоқосылу жазбалары пайдаланушы қалтасында және жүйе қалтасында болады, ал файл атаулары сәйкес келсе, пайдаланушы көшірмесі ұтады. Қате жазбаны оқу — өзгерістің әсерсіз көрінуінің ең жиі себебі. Бірдеңені өңдеудің алдында екі қалтаны да тізімдеп, сессия шын мәнінде қай файлды жүктейтінін жазып алыңыз.
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
Орта айнымалысы сүзгі кілттері салыстырылатын сессия атауын шығарады, және ол әдетте қос нүктемен бөлінген тізім. Оны жазбадағы мәндермен сөзбе-сөз салыстырыңыз, өйткені бұл атаулар сессияның сипаттамасы емес, регистрге сезімтал конфигурация детальдары. Мән GNOME мынаған сәйкес келмейді: gnome, және осыдан туындаған үнсіздікке ешбір қате хабарламасы қосылмайды. Болжаудың орнына оны шығарыңыз.
Егер бірдей файл атауы екі қалтада болса, маңыздысы — пайдаланушы көшірмесі. Жүйелік файлды өңдеп, неге ештеңе өзгермеді деп таңдану — өте жиі кездесетін жоғалған сағат.
Сүзгі кілттерін ретімен оқыңыз
Төмендегі үлгі жазба сессияның бағдарламаны іске қосатынын шешетін кілттерді көрсетеді. Бұл фрагмент, толық іске қосқыш емес, және мәндер ойдан шығарылған жолға тиесілі.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn жазбаны тізімделген орталармен шектейді және NotShowIn тізімделгендерді алып тастайды. Екеуі бір жазбада кездескенде спецификация пайдалы мінез-құлықты анықтамайды, сондықтан екеуін де қамтитын файлды ақылды комбинация емес, ақау деп қараңыз. Екіншісін қосып, басымдық ережесіне үміт артудың орнына қажет емес кілтті жойыңыз.
TryExec сессия оны іске қоспас бұрын орындалатын файлдың бар-жоғын сұрайды. Сондықтан ескі орнатудан қалған жол, жаңа пакет мәзірден іске қосқанда жұмыс істесе де, автоқосылуды басып тастайды, және бұл сәтсіздік дәл жұмыс үстелі сүзгісіне ұқсайды.
Пайдаланушы деңгейінде қайта анықтаңыз, жүйе деңгейінде емес
Сүзгі осы машина үшін шынымен қате болса, жүйелік жазбаны пайдаланушы қалтасына көшіріп, көшірмені өзгертіңіз. XDG автоқосылу ережелеріне сәйкес аттас пайдаланушы жазбасы басымдыққа ие, және Hidden=true жүйелік файлды жоймай-ақ жазбаны өшіреді.
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
Шығудың алдында нәтижені тексеріңіз, өйткені дұрыс құрылмаған жазба үнсіз еленбейді және келесі тест сізге ештеңе айтпайды. Пакетті қайта орнату сіздің қайта анықтауыңызды жоймайды, бұл — мақсат және оның бар екенін жазып қоюдың себебі де. Файл жолын билетке жазыңыз, сонда келесі адам қайта анықтауды қайта шығарудың орнына табады.
Мұны ортақ жүйелік іске қосқыштарды өңдеуден артық көріңіз, өйткені ол машинадағы әрбір пайдаланушының мінез-құлқын өзгертеді және сол сияқты қарауға келмейді. Пайдаланушы деңгейіндегі қайта анықтау бір жерде көрінеді, бір файлды жою арқылы қайтарылады және билетте оңай түсіндіріледі. Жүйелік файл жеткізуші жіберген күйінде қалады, сондықтан пакет жаңартуы сіздің пайымдауыңызды үнсіз жоймайды.
Туннельге тимей іске қосылуды растаңыз
Шығып, қайта кіріңіз, содан кейін панельге қарамас бұрын процестің бар екенін растаңыз. Сәтті іске қосылу мен көрінетін белгіше — екі бөлек нәтиже, және тек екіншісі жұмыс үстелімен интеграция жұмысын қажет етеді. Оларды шатастыру сізді бүкіл уақыт бойы жұмыс істеп тұрған пакетті қайта орнатуға жібереді.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Егер процесс жоқ болса, жазбаны қалған сүзгі немесе ескірген TryExec жол үшін қайта оқыңыз. Егер ол бар болса, іске қосқыш жұмыс істеді және жоғалған белгіше — панельдің индикаторды қолдауына қатысты бөлек мәселе, сіз жаңа өңдеген жазбаға емес.
Үш бақылауды билетке жазыңыз: қосылды, көрінеді, байланысқан. Бұл жазба келесі адамның сол үш жақты шатасуды қайталауын болдырмайды және қай қабат әлі жұмысты қажет ететінін анықтайды.