Izlabot VPN automātiskās palaišanas ierakstu, kas darbojas tikai vienā darbvirsmā
VPN palaidējs, kas startē vienā darbvirsmā un ne otrā, ir darbvirsmas ieraksta filtrs, nevis tuneļa kļūme. Vispirms izlasiet OnlyShowIn, TryExec un pārrakstīšanu.
VPN klients startē no lietotņu izvēlnes, tunelis savienojas, un ikona pēc pieteikšanās nekad neparādās vienā mašīnā, kamēr tā pati pakotne otrā darbojas pareizi. Trīs novērojumi tiek saspiesti vienā sūdzībā: vai programma startēja, vai tās saskarne ir redzama un vai tunelis ir pacelts. Palaidēju pārvalda darbvirsmas ieraksts ar filtrēšanas atslēgām, un šim ierakstam nav nekāda sakara ar VPN protokolu. Izstaigājiet rokasgrāmatu secībā un apstājieties, kad viens no trim skaidri atdalās.
Trīs atsevišķi fakti: palaišana, ikona, tunelis
Darbvirsmas ieraksts palaiž programmu. Tas nevar instalēt teknēšanas ieviešanu un nevar likt indikatoram parādīties panelī, kas neatbalsta lietotnes izmantoto protokolu. Ja process jau darbojas, palaišanas jautājums ir atbildēts un jūs tā vietā skatāties uz integrācijas problēmu.
Tunelis atkal ir trešais fakts. Trūkstoša ikona nav pierādījums, ka savienojums krita, un klienta nogalināšana un pārstartēšana, lai «salabotu» ikonu, ir tieši tas veids, kā strādājošs tunelis bez iemesla tiek pārtraukts. Lietotāji ziņo par trūkstošo ikonu un salauzto tuneli vienā teikumā, un tieši tāpēc abi ir jānošķir uz papīra.
Nošķiriet tos, pirms kaut ko maināt. Pārbaudiet, vai process pastāv, tad vai panelis atbalsta indikatoru, un visbeidzot vai saskarne ziņo par savienojumu. Katra atbilde norāda uz citu slāni un citu atbildīgo.
Atrodiet ierakstu, ko sesija patiešām nolasa
Automātiskās palaišanas ieraksti atrodas lietotāja direktorijā un sistēmas direktorijā, un, ja failu nosaukumi sakrīt, uzvar lietotāja kopija. Nepareizā ieraksta lasīšana ir visbiežākais iemesls, kāpēc izmaiņas šķiet bez ietekmes. Uzskaitiet abus direktorijus, pirms kaut ko rediģējat, un pierakstiet, kuru failu sesija patiešām ielādēs.
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
Vides mainīgais izdrukā sesijas nosaukumu, ar kuru tiek salīdzinātas filtrēšanas atslēgas, un tas parasti ir ar kolsastīgu atdalīts saraksts. Salīdziniet to burtiski ar ieraksta vērtībām, jo šie nosaukumi ir reģistrjutīgas konfigurācijas detaļas, nevis sesijas apraksts. Vērtība GNOME neatbilst gnome, un no tā izrietošajam klusumam nav pievienots neviens kļūdas ziņojums. Izdrukājiet to, nevis pieņemiet.
Ja tas pats faila nosaukums ir abos direktorijos, svarīga ir lietotāja kopija. Sistēmas faila rediģēšana un brīnīšanās, kāpēc nekas nemainījās, ir ļoti izplatīta pazaudēta stunda.
Lasiet filtrēšanas atslēgas pēc kārtas
Tālāk dotais ilustratīvais ieraksts parāda atslēgas, kas izlemj, vai sesija palaidīs programmu. Tas ir fragments, nevis pilnīgs palaidējs, un vērtības pieder izdomātam ceļam.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn ierobežo ierakstu ar uzskaitītajām vidēm un NotShowIn izslēdz uzskaitītās. Specifikācija nenosaka noderīgu uzvedību, ja abi parādās vienā ierakstā, tāpēc failu ar abiem uzskatiet par defektu, nevis gudru kombināciju. Noņemiet nevajadzīgo atslēgu, tā vietā lai pievienotu otro un cerētu uz prioritātes noteikumu.
TryExec jautā, vai izpildfaila fails pastāv, pirms sesija to palaiž. Tāpēc no vecākas instalācijas palicis ceļš nomāc automātisko palaišanu, pat ja jaunā pakotne darbojas, palaižot to no izvēlnes, un šī kļūme izskatās tieši kā darbvirsmas filtrs.
Pārrakstiet lietotāja līmenī, nevis sistēmas
Kad filtrs šai mašīnai patiešām ir nepareizs, nokopējiet sistēmas ierakstu lietotāja direktorijā un mainiet kopiju. Saskaņā ar XDG automātiskās palaišanas noteikumiem lietotāja ierakstam ar tādu pašu nosaukumu ir prioritāte, un Hidden=true atspējo ierakstu, neizdzēšot sistēmas failu.
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
Pārbaudiet rezultātu pirms izrakstīšanās, jo nepareizi veidots ieraksts tiek klusi ignorēts un nākamais tests jums neko nepasaka. Pakotnes pārinstalēšana nenoņems jūsu pārrakstīšanu, tas ir mērķis un arī iemesls pierakstīt, ka tā pastāv. Pierakstiet faila ceļu biļetē, lai nākamā persona atrastu pārrakstīšanu, nevis atkal to izvestu.
Dodiet priekšroku šim, nevis koplietojamu sistēmas palaidēju rediģēšanai, kas maina uzvedību ikvienam mašīnas lietotājam un nav pārskatāma tādā pašā veidā. Lietotāja līmeņa pārrakstīšana ir redzama vienā vietā, atgriežama, izdzēšot vienu failu, un viegli izskaidrojama biļetē. Sistēmas fails paliek tāds, kādu to piegādāja ražotājs, tāpēc pakotnes atjauninājums klusi neatceļ jūsu pamatojumu.
Apstipriniet palaišanu, nepieskaroties tunelim
Izrakstieties un atkal pieteikties, pēc tam apstipriniet, ka process pastāv, pirms skatāties uz paneli. Veiksmīga palaišana un redzama ikona ir divi dažādi rezultāti, un tikai otrajam nepieciešams darbvirsmas integrācijas darbs. Tos sajaucot, jūs aiziet pārinstalēt pakotni, kas visu laiku darbojās.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Ja process nav, pārlasiet ierakstu, meklējot atlikušu filtru vai novecojušu TryExec ceļu. Ja tas ir, palaidējs darbojās, un trūkstošā ikona ir atsevišķa paneļa indikatora atbalsta problēma, nevis tikko rediģētā ieraksta problēma.
Pierakstiet trīs novērojumus biļetē: palaists, redzams, savienots. Šis pieraksts neļauj nākamajai personai atkārtot to pašu trīskāršo apjukumu un parāda, kuram slānim vēl nepieciešams darbs.