Az API-végpontot exportáló VPN-hook az általa indított folyamatok környezetét változtatja meg, nem a tunel felállásakor már nyitva lévő terminálét. Ez az egyetlen különbség magyarázza a „az eszköz még mindig a nyilvános végpontot hívja” jelentések többségét. Két használható hely van a beállítás számára, és a választás attól függ, ki fogyasztja, és milyen gyakran változik. Hasonlítsa össze őket, mielőtt újabb indító szkriptet ad hozzá.

Két hely, ahol a beállítás élhet

Az első lehetőség egy előtag magán a parancson: az érték csak arra az egyetlen hívásra létezik, és azzal eltűnik. A második lehetőség egy export a kapcsolat hookján belül, amely minden folyamathoz eljut, amelyet a hook ezután indít. Kiterjedésben és élettartamban különböznek, nem szintaxisban, és ez a különbség dönti el a legtöbb hibát.

PropertyPrefix on the commandExport from the hook
Who receives itThat invocation onlyChildren the hook starts
LifetimeUntil the process exitsUntil the hook's own session ends
LeakageScoped to one commandApplies to later commands in that session
Repeat costEvery invocationOnce per connection
Works for an open editorNo, unless the editor is started with itNo

A táblázat olcsónak mutatja a hookot, és elrejti a valódi számlát: privát végpontot választ azokhoz a parancsokhoz is, amelyeknek semmi közük a feladathoz. Minden sort korlátként olvasson, ne preferenciaként. Ha a végpont feladatonként változik, az előtag a pontosságban nyer, még ha egy billentyűleütésbe kerül is.

Miért nem érheti el a hook a már nyitott shellt

A környezeti változókat a folyamatkép létrehozásakor adják át a folyamatnak. A kapcsolat előtt indult shell megtartja a kapott másolatot, és a hookon belül végrehajtott export nem sugárzás a gép minden folyamata felé. Csak a hook saját gyermekei öröklik. A shell saját gyermekei azt veszik át, amivel a shell az indulásuk pillanatában rendelkezik, és ezért ugyanaz a parancs működhet az egyik terminálban, és hiúsulhat meg a másikban.

Ugyanez igaz a grafikus szerkesztőre. Bővítménygazdája, beépített terminálja és háttérbeli nyelvi kiszolgálója indításkor elágazott, és saját másolatokat tart. Egy mappa újranyitása nem feltétlenül indítja újra ezeket a gyermekeket, így a hozzáadott beállítás továbbra sem érkezik meg soha.

A legolcsóbb próba a változót arról a helyről kiírni, amelyik meghiúsul, nem abból a shellből, amelyik működik. Ha a meghiúsuló folyamat a tunel előtt indult, az exportnak soha nem volt esélye.

A parancsonkénti forma, leírva

Az előtag láthatóan tartja a választást az azt használó parancsban, ami segít, ha a végpont feladatok között változik:

env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool

A parancs csak szemléltetés: a my-work-tool helyőrző, és a INTERNAL_API nem VPN-szabvány, ezért helyettesítse a ténylegesen futtatott program dokumentált beállításával és a saját jóváhagyott gazdagépével. Ne tegyen tokent vagy jelszót ugyanabba a sorba, mert az a shell előzményeibe kerül.

Ha több parancs tartozik egy feladathoz, egy rövid, átnézett burkolószkript beállítja a változókat, majd elindítja őket. Így egyetlen definíció marad, anélkül hogy az érték globálissá válna a terminál minden jövőbeli parancsára.

Töltse újra, indítsa újra, vagy hagyja békén

Egy már futó eszköznél részesítse előnyben a saját újratöltését vagy munkaterület-profilját, ha van neki. Ellenkező esetben mentse a munkát, és indítsa újra a beállítást olvasó komponenst, ami gyakran nyelvi kiszolgáló, nem a szerkesztő ablaka. Az ablak újraindítása és annak feltételezése, hogy a gyermekfolyamatok követték, éppen az, amitől az újratöltés úgy tűnik, mintha nem működne.

A kapcsolat bontása külön döntés. A szüneteltetés, bezárás vagy újracsatlakozás az alkalmazáshoz tartozik, és a végpontváltozó nem irányítja. Kezelje a változót olyan konfigurációként, amely címet választ, nem pedig szabályként arról, milyen hálózati forgalom használható utána, és a két kérdés továbbra is szétválasztható.

Kapcsolódó cikkek