VPN āķis, kas eksportē API galapunktu, maina to procesu vidi, kurus tas palaiž, nevis tā termināļa vidi, kurš jau bija atvērts, kad tunelis pacēlās. Šī viena atšķirība izskaidro lielāko daļu ziņojumu „rīks joprojām izsauc publisko galapunktu“. Ir divas darbspējīgas vietas iestatījumam, un izvēle ir atkarīga no tā, kas to patērē un cik bieži tas mainās. Salīdziniet tās pirms vēl viena palaišanas skripta pievienošanas.

Divas vietas, kur iestatījums var dzīvot

Pirmais variants ir prefikss pašā komandā: vērtība pastāv tikai šim vienam izsaukumam un pazūd kopā ar to. Otrais variants ir eksports savienojuma āķī, kas sasniedz katru procesu, kuru āķis palaiž pēc šī brīža. Tie atšķiras ar tvērumu un dzīves ilgumu, nevis sintaksi, un šī atšķirība izšķir lielāko daļu kļūmju.

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

Tabula liek āķim izskatīties lētam un slēpj īsto rēķinu: tas izvēlas privāto galapunktu arī komandām, kurām ar uzdevumu nav nekāda sakara. Lasiet katru rindu kā ierobežojumu, nevis kā izvēli. Ja galapunkts mainās atkarībā no uzdevuma, prefikss uzvar precizitātē, pat ja tas maksā vienu taustiņa nospiedienu.

Kāpēc āķis nevar sasniegt jau atvērtu čaulu

Vides mainīgie procesam tiek nodoti, kad tiek izveidots procesa attēls. Čaula, kas sākta pirms savienojuma, patur saņemto kopiju, un āķī izpildīts eksports nav apraide uz katru mašīnas procesu. To pārmanto tikai paša āķa bērni. Čaulas bērni paņem to, kas čaulai ir viņu palaišanas brīdī, un tāpēc viena un tā pati komanda var darboties vienā terminālī un neizdoties citā.

Tas pats attiecas uz grafisko redaktoru. Tā paplašinājumu mitinātājs, iebūvētais terminālis un fona valodas serveris tika atdalīti palaišanas laikā un tur savas kopijas. Mapes atkārtota atvēršana ne vienmēr restartē šos bērnus, tāpēc pievienotais iestatījums tomēr nekad nenonāk.

Lētākais tests ir izdrukāt mainīgo no vietas, kas neizdodas, nevis no čaulas, kas darbojas. Ja neizdevušais process sākās pirms tuneļa, eksportam nebija nekādu izredžu.

Katrai komandai paredzētā forma, izrakstīta

Prefikss patur izvēli redzamu tajā komandā, kas to izmanto, un tas palīdz, kad galapunkts mainās starp uzdevumiem:

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

Komanda ir tikai piemērs: my-work-tool ir vietas aizvietotājs un INTERNAL_API nav VPN standarts, tāpēc ievietojiet dokumentēto iestatījumu programmai, kuru jūs tiešām izpildāt, un savu apstiprināto mitinātāju. Nelieciet marķieri vai paroli tajā pašā rindā, jo tie nonāk čaulas vēsturē.

Kad vairākas komandas pieder vienam uzdevumam, īss pārskatīts ietvara skripts iestata mainīgos un pēc tam tās palaiž. Tā paliek viena definīcija, un vērtība nekļūst globāla katrai nākamajai termināļa komandai.

Pārlādējiet, restartējiet vai atstājiet

Rīkam, kas jau darbojas, dodiet priekšroku tā paša pārlādei vai darbvietas profilam, ja tāds ir. Citādi saglabājiet darbu un restartējiet komponentu, kas nolasa iestatījumu, un tas bieži ir valodas serveris, nevis redaktora logs. Loga restartēšana un pieņēmums, ka bērnprocesi tam sekoja, ir tieši tas, kāpēc pārlāde izskatās pēc nestrādājošas.

Atvienošanās ir atsevišķs lēmums. Pauzēšana, aizvēršana vai atkārtota savienošana pieder lietojumprogrammai, un galapunkta mainīgais to nekontrolē. Uztveriet mainīgo kā konfigurāciju, kas izvēlas adresi, nevis kā noteikumu par to, kāds tīkla trafiks drīkst tikt izmantots pēc tam, un abi jautājumi paliek atdalāmi.

Saistītie raksti