Oprava položky automatického spuštění VPN, která běží jen na jedné ploše
Spouštěč VPN, který startuje na jedné ploše a na jiné ne, je filtr v položce plochy, ne porucha tunelu. Přečtěte si nejdřív OnlyShowIn, TryExec a přepsání.
Klient VPN se spustí z nabídky aplikací, tunel se připojí a ikona se po přihlášení na jednom počítači nikdy neobjeví, zatímco stejný balíček se na jiném chová správně. Tři pozorování se slévají do jedné stížnosti: zda se program spustil, zda je jeho rozhraní viditelné a zda je tunel aktivní. Spouštěč se řídí položkou plochy s filtračními klíči a tato položka nemá s protokolem VPN nic společného. Projděte runbook v pořadí a zastavte se, když se jedna ze tří věcí čistě oddělí.
Tři oddělená fakta: spuštění, ikona, tunel
Položka plochy spouští program. Nemůže nainstalovat implementaci oznamovací oblasti a nemůže zajistit, aby se indikátor objevil v panelu, který nepodporuje protokol, jenž aplikace používá. Pokud proces už běží, otázka spuštění je zodpovězena a vy se místo toho díváte na problém integrace.
Tunel je znovu třetí fakt. Chybějící ikona není důkazem, že spojení spadlo, a zabíjení a restartování klienta, aby se ikona „opravila“, je přesně způsob, jakým se fungující tunel bezdůvodně přeruší. Uživatelé hlásí chybějící ikonu a rozbitý tunel v jedné větě, a právě proto je třeba obojí oddělit na papíře.
Oddělte je, než cokoli změníte. Zkontrolujte, zda proces existuje, pak zda panel indikátor podporuje, a nakonec zda rozhraní hlásí spojení. Každá odpověď ukazuje na jinou vrstvu a jiného vlastníka.
Najděte položku, kterou relace skutečně čte
Položky automatického spuštění žijí v uživatelském adresáři a v systémovém adresáři a při shodě názvů souborů vyhrává uživatelská kopie. Čtení špatné položky je nejčastější důvod, proč se změna jeví bez účinku. Než cokoli upravíte, vypište oba adresáře a poznamenejte si, který soubor relace skutečně načte.
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
Proměnná prostředí vypisuje název relace, se kterým se filtrační klíče porovnávají, a obvykle jde o seznam oddělený dvojtečkami. Porovnejte ji doslovně s hodnotami v položce, protože ty názvy jsou na velikost písmen citlivé podrobnosti konfigurace, nikoli popis relace. Hodnota GNOME neodpovídá gnome, a výsledné ticho nemá žádnou přiloženou chybovou zprávu. Vypište ji, místo abyste ji předpokládali.
Pokud stejný název souboru existuje v obou adresářích, záleží na uživatelské kopii. Upravovat systémový soubor a divit se, proč se nic nezměnilo, je velmi častá ztracená hodina.
Přečtěte filtrační klíče, v pořadí
Ilustrativní položka níže ukazuje klíče, které rozhodují, zda relace program spustí. Je to fragment, ne úplný spouštěč, a hodnoty patří fiktivní cestě.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn omezuje položku na uvedená prostředí a NotShowIn uvedená vylučuje. Specifikace nedefinuje užitečné chování, když se oba objeví v jedné položce, takže soubor obsahující oba berte jako vadu, ne jako chytré spojení. Odstraňte klíč, který nepotřebujete, místo abyste přidávali druhý a doufali v pravidlo priority.
TryExec se ptá, zda spustitelný soubor existuje, než jej relace spustí. Cesta zbylá po starší instalaci proto potlačí automatické spuštění, i když nový balíček funguje při spuštění z nabídky, a tato porucha vypadá přesně jako filtr plochy.
Přepisujte na úrovni uživatele, ne systému
Když je filtr pro tento počítač skutečně špatný, zkopírujte systémovou položku do uživatelského adresáře a kopii změňte. Podle pravidel automatického spuštění XDG má uživatelská položka stejného názvu přednost a Hidden=true deaktivuje položku, aniž by smazal systémový soubor.
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
Ověřte výsledek, než se odhlásíte, protože vadná položka se tiše ignoruje a další test vám nic neřekne. Přeinstalace balíčku vaše přepsání neodstraní, což je smysl a zároveň důvod si poznamenat, že existuje. Zapište cestu k souboru do tiketu, aby příští člověk přepsání našel, místo aby ho znovu odvozoval.
Upřednostněte to před úpravou sdílených systémových spouštěčů, která mění chování pro každého uživatele počítače a nelze ji přezkoumat stejným způsobem. Přepsání na úrovni uživatele je vidět na jednom místě, vratné smazáním jednoho souboru a snadno vysvětlitelné v tiketu. Systémový soubor zůstává tak, jak ho dodavatel odeslal, takže aktualizace balíčku tiše nezruší vaše uvažování.
Potvrďte spuštění, aniž byste se dotkli tunelu
Odhlaste se a znovu přihlaste, potom potvrďte, že proces existuje, než se podíváte na panel. Úspěšné spuštění a viditelná ikona jsou dva různé výsledky, a jen druhý z nich vyžaduje práci na integraci s plochou. Jejich záměna vás pošle přeinstalovat balíček, který celou dobu fungoval.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Pokud proces chybí, přečtěte položku znovu kvůli zbylému filtru nebo zastaralé TryExec cestě. Pokud je přítomen, spouštěč fungoval a chybějící ikona je samostatný problém s podporou indikátoru v panelu, ne s položkou, kterou jste právě upravili.
Zapište tři pozorování do tiketu: spuštěno, viditelné, připojeno. Tento záznam brání příštímu člověku zopakovat stejné trojí zmatení a ukazuje, která vrstva ještě potřebuje práci.