VPN-konks, mis ekspordib API lõpp-punkti, muudab käivitatavate protsesside keskkonda, mitte terminali oma, mis oli juba avatud, kui tunnel tõusis. See üks erinevus seletab enamikku teateid „tööriist kutsub endiselt avalikku lõpp-punkti“. Seade paigutamiseks on kaks töötavat kohta ja valik sõltub sellest, kes seda tarbib ja kui sageli see muutub. Võrrelge neid enne, kui lisate veel ühe käivituskripti.

Kaks kohta, kus seade saab elada

Esimene võimalus on eesliide käsu enda ees: väärtus on ainult selle ühe kutse jaoks ja kaob koos sellega. Teine võimalus on eksport ühenduse konksu sees, mis jõuab igasse protsessi, mille konks pärast seda punkti käivitab. Need erinevad ulatuse ja eluea poolest, mitte süntaksi poolest, ja see erinevus otsustab enamiku ebaõnnestumiste üle.

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

Tabel teeb konksu odava mulje ja varjab tegeliku arve: see valib privaatse lõpp-punkti ka käskudele, millel pole ülesandega mingit pistmist. Lugege iga rida piiranguna, mitte eelistusena. Kui lõpp-punkt muutub ülesande kaupa, võidab eesliide täpsuses, kuigi maksab ühe klahvivajutuse.

Miks konks ei jõua juba avatud kestani

Keskkonnamuutujad antakse protsessile protsessipildi loomisel. Kest, mis käivitus enne ühendust, hoiab saadud koopiat, ja konksu sees täidetav eksport ei ole saade igale masina protsessile. Selle pärivad ainult konksu enda lapsed. Kesta enda lapsed võtavad selle, mida kest nende käivitamise hetkel hoiab, ja seetõttu võib sama käsk ühes terminalis töötada ja teises ebaõnnestuda.

Sama kehtib graafilise redaktori kohta. Selle laienduste host, sisseehitatud terminal ja taustal töötav keeleserver hargnesid käivitamisel ja hoiavad oma koopiaid. Kausta uuesti avamine ei taaskäivita tingimata neid lapsi, nii et lisatud seade ei jõua ikkagi kunagi kohale.

Odavaim test on välja printida muutuja sellest kohast, mis ebaõnnestub, mitte kestast, mis töötab. Kui ebaõnnestuv protsess käivitus enne tunnelit, ei olnud ekspordil üldse võimalust.

Käsu kaupa vorm, välja kirjutatud

Eesliide hoiab valiku nähtavana käsu sees, mis seda kasutab, mis aitab siis, kui lõpp-punkt muutub ülesannete vahel:

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

Käsk on näitlik: my-work-tool on kohatäide ja INTERNAL_API ei ole VPN standard, seega asendage see programmi dokumenteeritud seadega, mida te tegelikult käivitate, ja oma kinnitatud hostiga. Ärge pange tokenit ega parooli samale reale, sest see satub kesta ajalukku.

Kui mitu käsku kuuluvad ühele ülesandele, määrab lühike üle vaadatud mähiskript muutujad ja käivitab need seejärel. Nii jääb üksainus määratlus ega muutu väärtus globaalseks igale tulevasele käsule terminalis.

Laadige uuesti, taaskäivitage või jätke puutumata

Tööriista puhul, mis juba töötab, eelistage selle enda uuestilaadimist või tööruumi profiili, kui see olemas on. Vastasel juhul salvestage töö ja taaskäivitage komponent, mis seadet loeb, milleks on sageli keeleserver, mitte redaktori aken. Akna taaskäivitamine ja eeldamine, et lapsprotsessid järgnesid, ongi põhjus, miks uuestilaadimine näib mitte töötavat.

Ühenduse katkestamine on eraldi otsus. Paus, sulgemine või uuesti ühendamine kuulub rakendusele ja lõpp-punkti muutuja ei juhi seda. Käsitlege muutujat konfiguratsioonina, mis valib aadressi, mitte reeglina selle kohta, millist võrguliiklust tohib hiljem kasutada, ja need kaks küsimust jäävad eraldatavaks.

Seotud artiklid