Un ganxo de VPN que exporta un punt final d’API canvia l’entorn dels processos que inicia, no el del terminal que ja era obert quan el túnel va pujar. Aquesta única distinció explica la majoria d’informes «l’eina encara crida el punt final públic». Hi ha dos llocs viables per posar la configuració, i l’elecció depèn de qui la consumeix i de la freqüència amb què canvia. Compareu-los abans d’afegir un altre script d’arrencada.

Dos llocs on pot viure la configuració

L’opció u és un prefix a la mateixa ordre: el valor existeix per a aquella invocació i desapareix amb ella. L’opció dos és una exportació dins del ganxo de connexió, que arriba a cada procés que el ganxo inicia després d’aquell punt. Es diferencien en abast i durada, no en sintaxi, i aquesta diferència decideix la majoria de fallades.

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

La taula fa que el ganxo sembli barat i amaga el compte real: també selecciona un punt final privat per a ordres que no tenen res a veure amb la tasca. Llegiu cada fila com una restricció i no com una preferència. Si el punt final canvia per tasca, el prefix guanya en precisió encara que costi una tecla.

Per què el ganxo no pot arribar a una consola ja oberta

Les variables d’entorn es lliuren a un procés quan es crea la imatge del procés. Una consola que va començar abans de la connexió conserva la còpia que va rebre, i una exportació executada dins del ganxo no és una difusió a cada procés de la màquina. Només l’hereten els fills propis del ganxo. Els fills propis d’una consola prenen el que la consola té en el moment de començar, i per això la mateixa ordre pot funcionar en un terminal i fallar en un altre.

El mateix passa amb un editor gràfic. El seu amfitrió d’extensions, el terminal integrat i el servidor d’idioma en segon pla es van bifurcar en arrencar i tenen les seves pròpies còpies. Reobrir una carpeta no reinicia necessàriament aquests fills, així que la configuració que heu afegit continua sense arribar mai.

La prova més barata és imprimir la variable des del lloc que falla, no des de la consola que funciona. Si el procés que falla va començar abans del túnel, l’exportació no va tenir cap oportunitat.

La forma per ordre, escrita

Un prefix manté l’elecció visible a l’ordre que la fa servir, cosa que ajuda quan el punt final canvia entre tasques:

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

L’ordre és il·lustrativa: my-work-tool és un marcador de posició i INTERNAL_API no és un estàndard de VPN, així que substituïu-ho per la configuració documentada del programa que realment executeu i pel vostre amfitrió aprovat. No poseu cap testimoni ni contrasenya a la mateixa línia, perquè acaba a l’historial de la consola.

Quan diverses ordres pertanyen a una tasca, un script d’embolcall curt i revisat defineix les variables i després les inicia. Així es manté una sola definició sense fer que el valor sigui global per a cada ordre futura del terminal.

Recarregueu, reinicieu o deixeu-ho estar

Per a una eina que ja s’executa, preferiu la seva pròpia recàrrega o el perfil d’espai de treball quan en tingui. Si no, deseu la feina i reinicieu el component que llegeix la configuració, que sovint és un servidor d’idioma i no la finestra de l’editor. Reiniciar la finestra i suposar que els processos fills l’han seguit és la manera com una recàrrega sembla no funcionar.

La desconnexió és una decisió a part. Pausar, tancar o reconnectar pertany a l’aplicació, i la variable del punt final no ho controla. Tracteu la variable com a configuració que tria una adreça, no com a regla sobre quin trànsit de xarxa es pot fer servir després, i les dues qüestions continuen sent separables.

Articles relacionats