VPN кука која извози крајњу тачку API-ја мења окружење процеса које покреће, а не терминала који је већ био отворен када се тунел подигао. Управо та једна разлика објашњава већину извештаја „алат и даље позива јавну крајњу тачку“. Постоје два употребљива места за подешавање, а избор зависи од тога ко га троши и колико се често мења. Упоредите их пре него што додате још једну скрипту за покретање.

Два места на којима подешавање може да живи

Прва опција је префикс на самој наредби: вредност постоји само за тај један позив и нестаје с њим. Друга је извоз унутар куке за повезивање, који стиже до сваког процеса који кука покрене после те тачке. Разликују се по домету и трајању, не по синтакси, и та разлика одлучује већину отказивања.

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

Табела чини куку јефтином и скрива прави рачун: она бира приватну крајњу тачку и за наредбе које немају никакве везе са задатком. Читајте сваки ред као ограничење, а не као склоност. Ако се крајња тачка мења по задатку, префикс побеђује у прецизности иако кошта једно притискање тастера.

Зашто кука не може да стигне до већ отворене љуске

Променљиве окружења предају се процесу када се ствара слика процеса. Љуска која је почела пре везе задржава копију коју је добила, а извоз извршен унутар куке није емитовање ка сваком процесу на машини. Наслеђују га само сопствена деца куке. Сопствена деца љуске узимају оно што љуска држи у тренутку њиховог покретања, и зато иста наредба може да ради у једном терминалу, а да не успе у другом.

Исто важи и за графички уређивач. Његов домаћин за проширења, уграђени терминал и позадински језички сервер раздвојили су се при покретању и држе сопствене копије. Поновно отварање фасцикле не рестартује нужно ту децу, тако да додато подешавање и даље никада не стиже.

Најјефтинији тест је да испишете променљиву са места које отказује, а не из љуске која ради. Ако је процес који отказује почео пре тунела, извоз никада није имао шансу.

Облик по наредби, исписан

Префикс држи избор видљивим у наредби која га користи, што помаже када се крајња тачка мења између задатака:

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

Наредба је само илустративна: my-work-tool је замена, а INTERNAL_API није VPN стандард, зато упишите документовано подешавање програма који заиста извршавате и свој одобрени домаћин. Не стављајте токен или лозинку у исти ред, јер завршавају у историји љуске.

Када више наредби припада једном задатку, кратка прегледана скрипта-омотач поставља променљиве и затим их покреће. Тако остаје једна дефиниција, а вредност не постаје глобална за сваку будућу наредбу у терминалу.

Поново учитајте, рестартујте или оставите

За алат који већ ради, дајте предност његовом сопственом поновном учитавању или профилу радног простора када га има. У супротном сачувајте посао и рестартујте компоненту која чита подешавање, а то је често језички сервер, не прозор уређивача. Рестартовање прозора уз претпоставку да су деца процеса пошла за њим је управо разлог зашто поновно учитавање изгледа као да не ради.

Прекид је одвојена одлука. Паузирање, затварање или поновно повезивање припада апликацији, а променљива крајње тачке то не контролише. Третирајте променљиву као конфигурацију која бира адресу, а не као правило о томе који мрежни саобраћај сме да се користи после, и две ствари остају раздвојиве.

Повезани чланци