Ուղղել 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 ուղի։ Եթե այն կա, գործարկիչն աշխատել է, և բացակայող պատկերակը առանձին խնդիր է՝ վահանակի ցուցիչի աջակցության հետ, ոչ թե ձեր նոր խմբագրած գրառման։
Գրանցեք երեք դիտարկումները տոմսում՝ գործարկված, տեսանելի, միացված։ Այդ գրառումը խանգարում է հաջորդ մարդուն կրկնել նույն եռակի շփոթությունը և պարզեցնում է, թե որ շերտն է դեռ աշխատանք պահանջում։