La VPN-kliento startas el la aplikaĵa menuo, la tunelo konektiĝas, kaj la piktogramo neniam aperas post saluto en unu maŝino, dum la sama pakaĵo kondutas ĝuste en alia. Tri observoj estas kunpremataj en unu plendon: ĉu la programo startis, ĉu ĝia interfaco estas videbla kaj ĉu la tunelo estas aktiva. La lanĉilo estas regata de labortabla enskribo kun filtradaj ŝlosiloj, kaj tiu enskribo neniel rilatas al la VPN-protokolo. Trapasu la manlibron laŭ ordo kaj haltu, kiam unu el la tri klare apartiĝas.

Tri apartaj faktoj: starto, piktogramo, tunelo

Labortabla enskribo startigas programon. Ĝi ne povas instali pleto-realigon, kaj ĝi ne povas igi indikilon aperi en panelo, kiu ne subtenas la protokolon, kiun la aplikaĵo uzas. Se la procezo jam ruliĝas, la starta demando estas respondita kaj vi anstataŭe rigardas integran problemon.

La tunelo estas denove tria fakto. Mankanta piktogramo ne estas pruvo, ke la konekto falis, kaj mortigi kaj restartigi la klienton por «ripari» la piktogramon estas ĝuste la maniero, kiel funkcianta tunelo senkaŭze interrompiĝas. Uzantoj raportas la mankantan piktogramon kaj la rompitan tunelon en la sama frazo, kaj ĝuste tial la du devas esti apartigitaj surpapere.

Apartigu ilin antaŭ ol ŝanĝi ion. Kontrolu, ĉu la procezo ekzistas, poste ĉu la panelo subtenas la indikilon, kaj fine ĉu la interfaco raportas konekton. Ĉiu respondo montras al alia tavolo kaj alia respondeculo.

Trovu la enskribon, kiun la sesio efektive legas

Kaŭtostartaj enskriboj loĝas en la uzanta dosierujo kaj en la sistema dosierujo, kaj kiam la dosiernomoj kongruas, la uzanta kopio venkas. Legi la malĝustan estas la plej ofta kaŭzo, ke ŝanĝo ŝajnas senefika. Listigu ambaŭ dosierujojn antaŭ ol redakti ion ajn, kaj notu, kiun dosieron la sesio efektive ŝutos.

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

La medivariablo presas la sesian nomon, kun kiu la filtradaj ŝlosiloj estas komparataj, kaj tio kutime estas perdupunkte apartigita listo. Komparu ĝin laŭvorte kun la valoroj en la enskribo, ĉar tiuj nomoj estas usklecsensivaj agordaj detaloj, ne priskribo de la sesio. Valoro GNOME ne kongruas kun gnome, kaj la rezulta silento havas neniun erarmesaĝon. Presu ĝin anstataŭ supozi ĝin.

Se la sama dosiernomo ekzistas en ambaŭ dosierujoj, temas pri la uzanta kopio. Redakti la sisteman dosieron kaj demandi sin, kial nenio ŝanĝiĝis, estas tre ofta perdita horo.

Legu la filtradajn ŝlosilojn, laŭ ordo

La ilustra enskribo sube montras la ŝlosilojn, kiuj decidas, ĉu sesio startigos la programon. Ĝi estas fragmento, ne kompleta lanĉilo, kaj la valoroj apartenas al fikcia vojo.

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

OnlyShowIn limigas la enskribon al la listigitaj medioj kaj NotShowIn ekskludas la listigitajn. La specifoj ne difinas utilan konduton, kiam ambaŭ aperas en unu enskribo, do traktu dosieron enhavantan ambaŭ kiel difekton, ne kiel lertan kombinaĵon. Forigu la ŝlosilon, kiun vi ne bezonas, anstataŭ aldoni la duan kaj esperi pri prioritata regulo.

TryExec demandas, ĉu la plenumebla dosiero ekzistas antaŭ ol la sesio startigos ĝin. Do vojo restinta de pli malnova instalaĵo subpremas kaŭtostarton, eĉ se la nova pakaĵo funkcias, kiam oni startigas ĝin el la menuo, kaj tiu fiasko aspektas ĝuste kiel labortabla filtrilo.

Anstataŭigu je uzanta nivelo, ne je sistema nivelo

Kiam la filtrilo vere malĝustas por ĉi tiu maŝino, kopiu la sisteman enskribon en la uzantan dosierujon kaj ŝanĝu la kopion. Laŭ la XDG-kaŭtostartaj reguloj, samnoma uzanta enskribo havas prioritaton, kaj Hidden=true malŝaltas enskribon sen forigi la sisteman dosieron.

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

Validigu la rezulton antaŭ ol elsaluti, ĉar misformita enskribo estas silente ignorata kaj la sekva testo diras al vi nenion. Reinstali la pakaĵon ne forigos vian anstataŭigon, kio estas la celo kaj ankaŭ la kialo noti, ke ĝi ekzistas. Notu la dosierovojon en la bileto, por ke la sekva persono trovu la anstataŭigon anstataŭ re-derivi ĝin.

Preferu ĉi tion ol redakti komunajn sistemajn lanĉilojn, kio ŝanĝas la konduton por ĉiu uzanto de la maŝino kaj ne estas revidebla same. Anstataŭigo je uzanta nivelo estas videbla en unu loko, reigebla per forigo de unu dosiero kaj facile klarigebla en bileto. La sistema dosiero restas tia, kia la vendisto liveris ĝin, do pakaĵa ĝisdatigo ne silente nuligos vian rezonadon.

Konfirmu la starton sen tuŝi la tunelon

Elsalu kaj resalutu, poste konfirmu, ke la procezo ekzistas antaŭ ol rigardi la panelon. Sukcesa starto kaj videbla piktogramo estas du malsamaj rezultoj, kaj nur la dua bezonas laboron pri labortabla integriĝo. Konfuzi ilin sendas vin reinstali pakaĵon, kiu funkciis la tutan tempon.

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

Se la procezo mankas, relegu la enskribon por restanta filtrilo aŭ malnova TryExec vojo. Se ĝi ĉeestas, la lanĉilo funkciis kaj la mankanta piktogramo estas aparta problemo pri la indikila subteno de la panelo, ne pri la enskribo, kiun vi ĵus redaktis.

Notu la tri observojn en la bileto: startinta, videbla, konektita. Tiu registro malhelpas la sekvan personon ripeti la saman trioblan konfuzon kaj klarigas, kiun tavolon ankoraŭ bezonas laboro.

Rilataj artikoloj