Waarom een nieuwe VPN-snelkoppeling verloren instellingen niet herstelt
Een launcher bepaalt hoe een programma start, niet waar het zijn voorkeuren bewaart. Vergelijk de context van het uitvoerbare bestand, de gebruiker en de configuratie voordat u het pictogram de schuld geeft.
Ontbrekende menu-items en verdwijnende voorkeuren worden met dezelfde reflex gerepareerd, en het zijn onverwante problemen. Het ene is desktopintegratie, het andere is de toestand van de applicatie, en een nieuw pictogram verandert geen van beide uit zichzelf. De twee scheiden kost één experiment en verklaart het grootste deel van de verwarring die mensen bij dit onderwerp meebrengen. De launcher start een programma; het programma beslist wat het onthoudt.
Twee taken die alleen op één lijken
Desktopintegratie betekent dat de omgeving een uitvoerbaar bestand kan vinden, een naam en een pictogram kan tonen en de juiste argumenten kan doorgeven. De toestand van de applicatie betekent dat het programma een profiel op een duurzame plek schrijft en het bij de volgende start terugleest. Geen van beide veronderstelt het andere, daarom kan een werkende snelkoppeling een client starten die alles vergeten is.
Wijzig één onschuldige weergavevoorkeur via de eigen bediening van de applicatie, sluit hem daarna en open hem op dezelfde manier opnieuw. Als de voorkeur terugkomt, werkt de opslag en gaat de resterende klacht over het vinden van het venster in plaats van het opslaan van gegevens. Als hij verdwijnt, is de snelkoppeling een afleiding en is de echte vraag waar dat proces zijn bestanden bewaart. Test één voorkeur tegelijk, want een client die opnieuw om een wachtwoord vraagt, beschermt misschien een geheim in plaats van een configuratie te verliezen.
Vergelijk de startinvoer voordat u herinstalleert
Begin bij de desktopvermelding en lees wat die werkelijk doet, want een start uit het menu is niet automatisch dezelfde procesomgeving als een start uit de terminal. De sleutels die ertoe doen zijn Exec, Path en indirect de omgeving die de sessie biedt. Een wrapperscript in Exec kan een variabele zetten, van map wisselen of een bevoorrechte helper aanroepen die het menu nooit toont. Herinstalleren vervangt bestanden die de applicatie al had, en dat is zelden de variabele die veranderde.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Kijk naar het bestand onder ~/.local/share/applications vóór dat in /usr/share/applications, want een gebruikerskopie overschaduwt de systeemkopie. Voer desktop-file-validate uit wanneer de vermelding zich verkeerd gedraagt, en zoek een verouderde kopie die nog naar een verwijderd pad wijst. Een ongeldige gebruikerskopie heeft nog steeds de voorkeur op de meeste desktops, dus een kapot bestand kan de vermelding uit het menu halen terwijl het bestand van het pakket geldig blijft. Voer daarna dezelfde opdracht met de hand uit en vergelijk wat de twee starts opleveren.
Waar een voorkeur werkelijk leeft
Applicaties die de XDG-regels voor basismappen volgen, plaatsen configuratie onder $XDG_CONFIG_HOME, duurzame toestand onder $XDG_STATE_HOME en wegwerpgegevens onder $XDG_CACHE_HOME, met ~/.config, ~/.local/state en ~/.cache als standaard wanneer die variabelen niet zijn ingesteld. De drie zijn rollen en geen beloften, dus een bepaald VPN-product kan iets heel anders documenteren. De eigen documentatie van de leverancier lezen is beter dan een pad uit een mapnaam raden. Als de documentatie dun is, observeer dan het proces in plaats van het bestandssysteem.
Een trace gefilterd op bestandsopeneningen toont elk configuratiepad dat de client probeert, inclusief het pad dat hij bij het afsluiten schrijft. Voer hem uit als dezelfde gebruiker met dezelfde omgeving en vergelijk die paden daarna met de mappen die u verwachtte.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Geheimen en profielen hebben verschillende eigenaars
Een opgeslagen profiel en een opgeslagen inloggegeven zijn afzonderlijke objecten, vaak met afzonderlijke opslag. Het ene kan in een configuratiebestand leven terwijl het andere in een sleutelbos zit die per sessie wordt ontgrendeld, dus een client die opnieuw om een wachtwoord vraagt, doet misschien gewoon waarvoor hij is ontworpen. Het profiel verwijderen om de vraag te stoppen is hoe mensen een werkende configuratie verliezen.
Bevoorrechte starts maken dit ingewikkelder, want een start via sudo of een PolicyKit-helper kan een andere thuismap en dus een andere configuratieset presenteren. Repareer het eigenaarschap op het specifieke bestand dat de applicatie documenteert in plaats van recursief over een thuismap, beslis daarna welke identiteit het profiel voortaan moet bezitten en houd toekomstige starts daarmee consistent.
Wat het pictogram u wel en niet kan vertellen
Een pictogram bewijst dat een launcherbestand wordt opgelost, en niets meer. De verbindingstoestand hoort bij de client, dus de enige betrouwbare controle is de interface, de route of de eigen statusuitvoer van de client. Een systeemvakapplet dat niet is gestart, kan een werkende tunnel kapot laten lijken, terwijl een verouderd applet een kapotte tunnel juist goed laat lijken. Test de verbinding en de launcher apart en schrijf daarna op welke van de twee u werkelijk hebt gerepareerd.
Als beide kapot waren, weersta dan de neiging de reparatie als één wijziging te behandelen. Repareer de vermelding, bevestig de start en bevestig daarna de tunnel, en noteer het resultaat van elke stap. Dat verslag is wat het volgende rapport over verloren instellingen diagnoseerbaar maakt in plaats van een herhaling van dit rapport, en het vertelt de volgende persoon ook welke helft van het probleem echt was.