VPN-asiakasohjelma käynnistyy sovellusvalikosta, tunneli yhdistyy, eikä kuvake koskaan ilmesty kirjautumisen jälkeen yhdellä koneella, kun taas sama paketti toimii toisella koneella oikein. Kolme havaintoa litistetään yhdeksi valitukseksi: käynnistyikö ohjelma, onko sen käyttöliittymä näkyvissä ja onko tunneli pystyssä. Käynnistintä ohjaa työpöytätiedosto, jossa on suodatusavaimia, eikä tuolla tiedostolla ole mitään tekemistä VPN-protokollan kanssa. Käy ohje läpi järjestyksessä ja pysähdy, kun yksi kolmesta erottuu puhtaasti.

Kolme erillistä tosiasiaa: käynnistys, kuvake, tunneli

Työpöytätiedosto käynnistää ohjelman. Se ei voi asentaa tarjotinratkaisua eikä saada ilmaisinta ilmestymään paneeliin, joka ei tue sovelluksen käyttämää protokollaa. Jos prosessi on jo käynnissä, käynnistyskysymys on vastattu ja katsot sen sijaan integraatio-ongelmaa.

Tunneli on taas kolmas tosiasia. Puuttuva kuvake ei ole todiste yhteyden katkeamisesta, ja asiakasohjelman tappaminen ja uudelleenkäynnistys kuvakkeen «korjaamiseksi» on juuri se tapa, jolla toimiva tunneli keskeytetään ilman syytä. Käyttäjät raportoivat puuttuvan kuvakkeen ja rikkinäisen tunnelin samassa lauseessa, ja juuri siksi ne kaksi on erotettava paperilla.

Erottele ne ennen kuin muutat mitään. Tarkista, onko prosessi olemassa, sitten tukeeko paneeli ilmaisinta ja lopuksi ilmoittaako käyttöliittymä yhteydestä. Jokainen vastaus osoittaa eri kerrokseen ja eri vastuulliseen.

Etsi tiedosto, jota istunto todella lukee

Automaattikäynnistyksen tiedostot sijaitsevat käyttäjän hakemistossa ja järjestelmän hakemistossa, ja kun tiedostonimet täsmäävät, käyttäjän kopio voittaa. Väärän tiedoston lukeminen on yleisin syy siihen, että muutos näyttää tehottomalta. Listaa molemmat hakemistot ennen kuin muokkaat mitään ja kirjaa, minkä tiedoston istunto todella lataa.

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

Ympäristömuuttuja tulostaa istunnon nimen, johon suodatusavaimia verrataan, ja se on yleensä kaksoispisteillä erotettu luettelo. Vertaa sitä kirjaimellisesti tiedoston arvoihin, koska nuo nimet ovat kirjainkoosta riippuvia kokoonpanotietoja eivätkä kuvaus istunnosta. Arvo GNOME ei vastaa arvoa gnome, eikä syntyvään hiljaisuuteen liity mitään virheilmoitusta. Tulosta se sen sijaan, että olettaisit sen.

Jos sama tiedostonimi on molemmissa hakemistoissa, käyttäjän kopio ratkaisee. Järjestelmätiedoston muokkaaminen ja ihmettely, miksi mikään ei muuttunut, on hyvin yleinen hukattu tunti.

Lue suodatusavaimet järjestyksessä

Alla oleva esimerkkitiedosto näyttää avaimet, jotka päättävät, käynnistääkö istunto ohjelman. Se on katkelma, ei täydellinen käynnistin, ja arvot kuuluvat kuvitteelliseen polkuun.

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

OnlyShowIn rajoittaa tiedoston lueteltuihin ympäristöihin ja NotShowIn sulkee pois luetellut. Määrittely ei määrittele hyödyllistä toimintaa, kun molemmat esiintyvät samassa tiedostossa, joten käsittele molemmat sisältävää tiedostoa virheenä äläkä ovelana yhdistelmänä. Poista avain, jota et tarvitse, sen sijaan että lisäisit toisen ja toivoisit ensisijaisuussääntöä.

TryExec kysyy, onko suoritettava tiedosto olemassa ennen kuin istunto käynnistää sen. Vanhemmasta asennuksesta jäänyt polku tukahduttaa siksi automaattikäynnistyksen, vaikka uusi paketti toimii valikosta käynnistettynä, ja tuo vika näyttää täsmälleen työpöytäsuodattimelta.

Ohita käyttäjätasolla, älä järjestelmätasolla

Kun suodatin on todella väärä tälle koneelle, kopioi järjestelmätiedosto käyttäjän hakemistoon ja muuta kopiota. XDG:n automaattikäynnistyssääntöjen mukaan samannimisellä käyttäjätiedostolla on etusija, ja Hidden=true poistaa tiedoston käytöstä poistamatta järjestelmätiedostoa.

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

Validoi tulos ennen uloskirjautumista, koska virheellinen tiedosto jätetään hiljaisesti huomiotta eikä seuraava testi kerro sinulle mitään. Paketin uudelleenasennus ei poista ohitustasi, mikä on tarkoitus ja myös syy kirjata, että se on olemassa. Kirjaa tiedostopolku tikettiin, jotta seuraava henkilö löytää ohituksen sen sijaan että johtaisi sen uudelleen.

Suosi tätä jaettujen järjestelmäkäynnistimien muokkaamisen sijaan, sillä se muuttaa toimintaa jokaiselle koneen käyttäjälle eikä ole samalla tavalla tarkistettavissa. Käyttäjätason ohitus näkyy yhdessä paikassa, on peruttavissa yhden tiedoston poistamisella ja helppo selittää tiketissä. Järjestelmätiedosto pysyy sellaisena kuin toimittaja sen toimitti, joten pakettipäivitys ei hiljaisesti kumoa päättelyäsi.

Vahvista käynnistys koskematta tunneliin

Kirjaudu ulos ja takaisin sisään ja vahvista sitten, että prosessi on olemassa ennen kuin katsot paneelia. Onnistunut käynnistys ja näkyvä kuvake ovat kaksi eri tulosta, ja vain toinen tarvitsee työpöytäintegraation työtä. Niiden sekoittaminen lähettää sinut asentamaan uudelleen pakettia, joka toimi koko ajan.

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

Jos prosessi puuttuu, lue tiedosto uudelleen jäljellä olevan suodattimen tai vanhentuneen TryExec polun varalta. Jos se on olemassa, käynnistin toimi ja puuttuva kuvake on erillinen ongelma paneelin ilmaisintuessa, ei tiedostossa, jota juuri muokkasit.

Kirjaa kolme havaintoa tikettiin: käynnistetty, näkyvissä, yhdistetty. Tämä kirjaus estää seuraavaa henkilöä toistamasta saman kolmijakoisen sekaannuksen ja tekee selväksi, mikä kerros tarvitsee vielä työtä.

Aiheeseen liittyvät artikkelit