De VPN-client start vanuit het toepassingsmenu, de tunnel verbindt, en het pictogram verschijnt na het aanmelden nooit op de ene machine, terwijl hetzelfde pakket zich op een andere normaal gedraagt. Drie waarnemingen worden samengeperst tot één klacht: of het programma is gestart, of de interface zichtbaar is en of de tunnel actief is. De starter wordt bestuurd door een bureaubladitem met filtersleutels, en dat item heeft niets met het VPN-protocol te maken. Werk de handleiding op volgorde door en stop wanneer een van de drie zich schoon afscheidt.

Drie afzonderlijke feiten: start, pictogram, tunnel

Een bureaubladitem start een programma. Het kan geen systeemvak-implementatie installeren, en het kan geen indicator in een paneel laten verschijnen dat het protocol van de toepassing niet ondersteunt. Als het proces al loopt, is de startvraag beantwoord en kijkt u in plaats daarvan naar een integratieprobleem.

De tunnel is weer een derde feit. Een ontbrekend pictogram is geen bewijs dat de verbinding wegviel, en de client doden en herstarten om het pictogram te «repareren» is precies de manier waarop een werkende tunnel zonder reden wordt onderbroken. Gebruikers melden het ontbrekende pictogram en de kapotte tunnel in dezelfde zin, en daarom moeten de twee op papier gescheiden worden.

Scheid ze voordat u iets verandert. Controleer of het proces bestaat, dan of het paneel de indicator ondersteunt, en ten slotte of de interface een verbinding meldt. Elk antwoord wijst op een andere laag en een andere eigenaar.

Vind het item dat de sessie werkelijk leest

Autostartitems staan in de gebruikersmap en in de systeemmap, en als de bestandsnamen overeenkomen, wint de kopie van de gebruiker. Het verkeerde lezen is de meest voorkomende reden dat een wijziging geen effect lijkt te hebben. Vermeld beide mappen voordat u iets bewerkt, en noteer welk bestand de sessie werkelijk laadt.

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

De omgevingsvariabele drukt de sessienaam af waarmee de filtersleutels worden vergeleken, en dat is meestal een lijst gescheiden door dubbele punten. Vergelijk die letterlijk met de waarden in het item, want die namen zijn hoofdlettergevoelige configuratiedetails en geen beschrijving van de sessie. Een waarde GNOME komt niet overeen met gnome, en de daaruit volgende stilte heeft geen foutmelding. Druk hem af in plaats van hem aan te nemen.

Als dezelfde bestandsnaam in beide mappen bestaat, is de kopie van de gebruiker degene die telt. Het systeembestand bewerken en zich afvragen waarom er niets veranderde is een zeer veelvoorkomend verloren uur.

Lees de filtersleutels, op volgorde

Het voorbeelditem hieronder toont de sleutels die bepalen of een sessie het programma start. Het is een fragment, geen volledige starter, en de waarden horen bij een fictief pad.

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

OnlyShowIn beperkt het item tot de genoemde omgevingen en NotShowIn sluit de genoemde uit. De specificatie definieert geen nuttig gedrag wanneer beide in één item voorkomen, dus behandel een bestand met beide als een defect en niet als een slimme combinatie. Verwijder de sleutel die u niet nodig hebt in plaats van de tweede toe te voegen en op een voorrangsregel te hopen.

TryExec vraagt of het uitvoerbare bestand bestaat voordat de sessie het start. Een pad dat van een oudere installatie overblijft onderdrukt daardoor autostart, ook al werkt het nieuwe pakket bij het starten vanuit het menu, en die fout ziet er precies als een bureaubladfilter uit.

Overschrijf op gebruikersniveau, niet op systeemniveau

Als het filter voor deze machine echt verkeerd is, kopieer het systeemitem dan naar de gebruikersmap en wijzig de kopie. Volgens de XDG-autostartregels heeft een gebruikersitem met dezelfde naam voorrang, en Hidden=true schakelt een item uit zonder het systeembestand te verwijderen.

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

Valideer het resultaat voordat u zich afmeldt, want een verkeerd gevormd item wordt stil genegeerd en de volgende test vertelt u niets. Het pakket opnieuw installeren verwijdert uw overschrijving niet, wat het punt is en ook de reden om vast te leggen dat die bestaat. Noteer het bestandspad in het ticket zodat de volgende persoon de overschrijving vindt in plaats van haar opnieuw af te leiden.

Geef hier de voorkeur aan boven het bewerken van gedeelde systeemstarters, wat het gedrag voor elke gebruiker op de machine verandert en niet op dezelfde manier te beoordelen is. Een overschrijving op gebruikersniveau is op één plek zichtbaar, omkeerbaar door één bestand te verwijderen, en gemakkelijk uit te leggen in een ticket. Het systeembestand blijft zoals de leverancier het heeft geleverd, zodat een pakketupdate uw redenering niet stil ongedaan maakt.

Bevestig de start zonder de tunnel aan te raken

Meld u af en weer aan en bevestig dan dat het proces bestaat voordat u naar het paneel kijkt. Een geslaagde start en een zichtbaar pictogram zijn twee verschillende resultaten, en alleen het tweede vereist werk aan de bureaubladintegratie. Ze door elkaar halen stuurt u een pakket opnieuw installeren dat al die tijd werkte.

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

Als het proces ontbreekt, lees het item dan opnieuw op een overgebleven filter of een verouderd TryExec pad. Als het aanwezig is, werkte de starter, en het ontbrekende pictogram is een apart probleem met de indicatorondersteuning van het paneel, niet met het item dat u zojuist hebt bewerkt.

Noteer de drie waarnemingen in het ticket: gestart, zichtbaar, verbonden. Die registratie voorkomt dat de volgende persoon dezelfde drievoudige verwarring herhaalt en maakt duidelijk welke laag nog werk nodig heeft.

Gerelateerde artikelen