VPN rīka iestatījumi: vide palaišanas laikā vai eksports āķī?
Āķis palaiž savus bērnus, nevis čaulu, kuru jau esat atvēris. Vide palaišanas laikā privāto galapunktu tur tikai tajā vienā komandā, kurai tas ir vajadzīgs.
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.
| Property | Prefix on the command | Export from the hook |
|---|---|---|
| Who receives it | That invocation only | Children the hook starts |
| Lifetime | Until the process exits | Until the hook's own session ends |
| Leakage | Scoped to one command | Applies to later commands in that session |
| Repeat cost | Every invocation | Once per connection |
| Works for an open editor | No, unless the editor is started with it | No |
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.