Odjemalec VPN se zažene iz menija aplikacij, tunel se poveže, ikona pa se pri prijavi nikoli ne pojavi na enem računalniku, medtem ko se isti paket na drugem obnaša pravilno. Tri opažanja se stisnejo v eno pritožbo: ali se je program zagnal, ali je njegov vmesnik viden in ali je tunel vzpostavljen. Zaganjalnik ureja vnos namizja s ključi za filtriranje, in ta vnos nima nič opraviti s protokolom VPN. Prehodite navodila po vrsti in se ustavite, ko se ena od treh stvari čisto loči.

Tri ločena dejstva: zagon, ikona, tunel

Vnos namizja zažene program. Ne more namestiti izvedbe pladnja in ne more povzročiti, da bi se indikator pojavil v plošči, ki ne podpira protokola, ki ga aplikacija uporablja. Če proces že teče, je vprašanje zagona odgovorjeno in namesto tega gledate na težavo integracije.

Tunel je spet tretje dejstvo. Manjkajoča ikona ni dokaz, da je povezava padla, in ubijanje ter ponovni zagon odjemalca, da bi ikono «popravili», je natanko tisti način, s katerim se delujoč tunel prekine brez razloga. Uporabniki poročajo o manjkajoči ikoni in pokvarjenem tunelu v istem stavku, in prav zato je treba oba ločiti na papirju.

Ločite ju, preden karkoli spremenite. Preverite, ali proces obstaja, nato ali plošča podpira indikator, in nazadnje ali vmesnik poroča o povezavi. Vsak odgovor kaže na drugo plast in drugega odgovornega.

Poiščite vnos, ki ga seja dejansko bere

Vnosi samodejnega zagona živijo v uporabniškem imeniku in v sistemskem imeniku, in ko se imena datotek ujemajo, zmaga uporabniška kopija. Branje napačnega je najpogostejši razlog, da se sprememba zdi brez učinka. Pred urejanjem česarkoli izpišite oba imenika in zabeležite, katero datoteko bo seja dejansko naložila.

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

Okoljska spremenljivka izpiše ime seje, s katerim se primerjajo ključi za filtriranje, in to je običajno seznam, ločen z dvopičji. Primerjajte jo dobesedno z vrednostmi v vnosu, ker so ta imena na velikost črk občutljive podrobnosti konfiguracije in ne opis seje. Vrednost GNOME se ne ujema z gnome, in nastala tišina nima priloženega nobenega sporočila o napaki. Izpišite jo, namesto da bi jo predpostavljali.

Če isto ime datoteke obstaja v obeh imenikih, šteje uporabniška kopija. Urejanje sistemske datoteke in spraševanje, zakaj se ni nič spremenilo, je zelo pogosta izgubljena ura.

Preberite ključe za filtriranje, po vrsti

Ilustrativni vnos spodaj prikazuje ključe, ki odločajo, ali bo seja zagnala program. To je drobec, ne popoln zaganjalnik, in vrednosti pripadajo izmišljeni poti.

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

OnlyShowIn omeji vnos na navedena okolja in NotShowIn izključi navedena. Specifikacija ne določa koristnega vedenja, ko se oba pojavita v enem vnosu, zato datoteko z obema obravnavajte kot okvaro in ne kot pametno kombinacijo. Odstranite ključ, ki ga ne potrebujete, namesto da dodate drugega in upate na pravilo prednosti.

TryExec vpraša, ali izvedljiva datoteka obstaja, preden jo seja zažene. Zato pot, ki je ostala od starejše namestitve, zatira samodejni zagon, tudi če novi paket deluje pri zagonu iz menija, in ta okvara je videti natanko kot filter namizja.

Prepišite na ravni uporabnika, ne sistema

Ko je filter za ta računalnik res napačen, kopirajte sistemski vnos v uporabniški imenik in spremenite kopijo. Po pravilih samodejnega zagona XDG ima uporabniški vnos z istim imenom prednost, in Hidden=true onemogoči vnos, ne da bi izbrisal sistemsko datoteko.

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

Potrdite rezultat, preden se odjavite, ker je napačno oblikovan vnos tiho prezrt in naslednji preizkus vam ne pove ničesar. Ponovna namestitev paketa ne bo odstranila vašega prepisa, kar je smisel in hkrati razlog, da zabeležite, da obstaja. Zapišite pot datoteke v zahtevek, da bo naslednja oseba našla prepis, namesto da bi ga znova izpeljala.

Dajte prednost temu pred urejanjem skupnih sistemskih zaganjalnikov, ki spreminja vedenje vsakega uporabnika na računalniku in ga ni mogoče pregledati na enak način. Prepis na ravni uporabnika je viden na enem mestu, povračljiv z brisanjem ene datoteke in v zahtevku lahko razložljiv. Sistemska datoteka ostane takšna, kot jo je poslal dobavitelj, zato posodobitev paketa tiho ne razveljavi vašega razmišljanja.

Potrdite zagon, ne da bi se dotaknili tunela

Odjavite se in se znova prijavite, nato potrdite, da proces obstaja, preden pogledate ploščo. Uspešen zagon in vidna ikona sta dva različna rezultata, in le drugi potrebuje delo na integraciji z namizjem. Če ju zamenjate, greste znova namestit paket, ki je ves čas deloval.

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

Če procesa ni, znova preberite vnos zaradi preostalega filtra ali zastarele TryExec poti. Če je prisoten, je zaganjalnik deloval in manjkajoča ikona je ločena težava s podporo indikatorja v plošči, ne z vnosom, ki ste ga pravkar uredili.

Zapišite tri opažanja v zahtevek: zagnano, vidno, povezano. Ta zapis prepreči naslednji osebi, da bi ponovila isto trojno zmedo, in pokaže, katera plast še potrebuje delo.

Sorodni članki