Agordoj de la VPN-ilo: ĉirkaŭaĵo ĉe lanĉo aŭ eksporto en hoko?
Hoko lanĉas siajn proprajn idojn, ne la ŝelon, kiun vi jam malfermis. Ĉirkaŭaĵo ĉe lanĉo tenas la privatan finpunkton nur en la unu komando, kiu bezonas ĝin.
VPN-hoko, kiu eksportas API-finpunkton, ŝanĝas la ĉirkaŭaĵon de la procezoj, kiujn ĝi lanĉas, ne tiun de la terminalo, kiu jam estis malfermita kiam la tunelo ekfunkciis. Ĝuste tiu sola distingo klarigas la plej multajn raportojn „la ilo ankoraŭ vokas la publikan finpunkton“. Ekzistas du uzeblaj lokoj por meti la agordon, kaj la elekto dependas de tio, kiu konsumas ĝin kaj kiom ofte ĝi ŝanĝiĝas. Komparu ilin antaŭ ol aldoni alian lanĉoskripton.
Du lokoj, kie la agordo povas loĝi
Opcio unu estas prefikso sur la komando mem: la valoro ekzistas por tiu sola voko kaj malaperas kun ĝi. Opcio du estas eksporto ene de la konekta hoko, kiu atingas ĉiun procezon, kiun la hoko lanĉas post tiu punkto. Ili diferencas laŭ atingopovo kaj vivdaŭro, ne laŭ sintakso, kaj tiu diferenco decidas la plej multajn malsukcesojn.
| 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 |
La tabelo igas la hokon ŝajni malmultekosta kaj kaŝas la realan fakturon: ĝi ankaŭ elektas privatan finpunkton por komandoj, kiuj havas nenion komunan kun la tasko. Legu ĉiun vicon kiel limigon, ne kiel preferon. Se la finpunkto ŝanĝiĝas laŭ tasko, la prefikso gajnas precizecon eĉ se ĝi kostas unu klavopremon.
Kial la hoko ne povas atingi ŝelon, kiu jam estas malfermita
Mediovariabloj estas transdonataj al procezo kiam la proceza bildo kreiĝas. Ŝelo, kiu startis antaŭ la konekto, konservas la kopion, kiun ĝi ricevis, kaj eksporto plenumita ene de la hoko ne estas dissendo al ĉiu procezo sur la maŝino. Nur la propraj idoj de la hoko heredas ĝin. La propraj idoj de ŝelo prenas tion, kion la ŝelo tenas en la momento de ilia starto, kaj tial la sama komando povas funkcii en unu terminalo kaj malsukcesi en alia.
La sama validas por grafika redaktilo. Ĝia etendaĵa gastiganto, integrita terminalo kaj fona lingvoservilo forkiĝis ĉe lanĉo kaj tenas proprajn kopiojn. Remalfermi dosierujon ne nepre restartigas tiujn idojn, do la agordo, kiun vi aldonis, ankoraŭ neniam alvenas.
La plej malmultekosta testo estas presi la variablon el la loko, kiu malsukcesas, ne el la ŝelo, kiu funkcias. Se la malsukcesanta procezo startis antaŭ la tunelo, la eksporto neniam havis ŝancon.
La formo por unuopa komando, skribita
Prefikso tenas la elekton videbla en la komando, kiu uzas ĝin, kio helpas kiam la finpunkto ŝanĝiĝas inter taskoj:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
La komando estas ilustra: my-work-tool estas anstataŭigilo kaj INTERNAL_API ne estas VPN-normo, do anstataŭigu ĝin per la dokumentita agordo de la programo, kiun vi efektive rulas, kaj per via propra aprobita gastiganto. Ne metu ĵetonon aŭ pasvorton sur la saman linion, ĉar ĝi finiĝas en la ŝela historio.
Kiam pluraj komandoj apartenas al unu tasko, mallonga reviziita ĉirkaŭiga skripto starigas la variablojn kaj poste lanĉas ilin. Tio konservas unu difinon sen igi la valoron tutmonda por ĉiu estonta komando en la terminalo.
Reŝargu, restartigu aŭ lasu ĝin
Por ilo jam ruliĝanta, preferu ĝian propran reŝargon aŭ laborspacan profilon se ĝi havas tian. Alie konservu la laboron kaj restartigu la komponanton, kiu legas la agordon, kiu ofte estas lingvoservilo kaj ne la redaktila fenestro. Restartigi la fenestron kaj supozi, ke la idaj procezoj sekvis, estas kial reŝargo aspektas kiel ne funkcianta.
Malkonekto estas aparta decido. Paŭzigo, fermo aŭ rekonekto apartenas al la aplikaĵo, kaj la finpunkta variablo ne regas tion. Traktu la variablon kiel agordon, kiu elektas adreson, ne kiel regulon pri tio, kiun retan trafikon oni rajtas uzi poste, kaj la du aferoj restas apartigeblaj.