API son nöqtəsini ixrac edən VPN qarmağı başlatdığı proseslərin mühitini dəyişir, tunel qalxdığı anda artıq açıq olan terminalın mühitini yox. Bu tək fərq «alət hələ də ictimai son nöqtəni çağırır» hesabatlarının çoxunu izah edir. Parametri yerləşdirmək üçün iki işlək yer var və seçim ondan asılıdır ki, kim onu istehlak edir və nə qədər tez dəyişir. Başqa bir başlatma skripti əlavə etməzdən əvvəl onları müqayisə edin.

Parametrin yaşaya biləcəyi iki yer

Birinci variant əmrin özünə əlavə olunan prefiksdır: dəyər yalnız həmin çağırış üçün mövcuddur və onunla yox olur. İkinci variant qoşulma qarmağı içindəki ixracdır və qarmağın bundan sonra başlatdığı hər prosesə çatır. Onlar sintaksisdə deyil, əhatə dairəsində və yaşama müddətində fərqlənir və bu fərq uğursuzluqların çoxunu həll edir.

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

Cədvəl qarmağı ucuz göstərir və əsl hesabı gizlədir: o, tapşırıqla heç bir əlaqəsi olmayan əmrlər üçün də şəxsi son nöqtə seçir. Hər sətri üstünlük kimi deyil, məhdudiyyət kimi oxuyun. Son nöqtə hər tapşırıqda dəyişirsə, bir düymə vuruşuna başa gəlsə də, prefiks dəqiqlikdə qalib gəlir.

Niyə qarmaq artıq açıq olan qabığa çata bilmir

Mühit dəyişənləri prosesə proses obrazı yaradılarkən verilir. Qoşulmadan əvvəl başlamış qabıq aldığı nüsxəni saxlayır və qarmaq içində icra olunan ixrac maşındakı hər prosesə yayım deyil. Yalnız qarmağın öz uşaqları onu miras alır. Qabığın öz uşaqları başladıqları anda qabığın saxladığını götürür, buna görə də eyni əmr bir terminalda işləyib digərində uğursuz ola bilər.

Eyni şey qrafik redaktor üçün də keçərlidir. Onun genişlənmə hostu, daxili terminalı və fon dil serveri işə salınarkən ayrılıb öz nüsxələrini saxlayır. Qovluğu yenidən açmaq mütləq həmin uşaqları yenidən başlatmır, ona görə əlavə etdiyiniz parametr yenə də heç vaxt çatmır.

Ən ucuz sınaq dəyişəni işləyən qabıqdan deyil, uğursuzluğa düşən yerdən çap etməkdir. Əgər uğursuz proses tuneldən əvvəl başlamışdısa, ixracın heç şansı olmayıb.

Hər əmr üçün forma, yazılı şəkildə

Prefiks seçimi istifadə edən əmrin içində görünən saxlayır, bu da son nöqtə tapşırıqlar arasında dəyişəndə kömək edir:

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

Əmr nümunə üçündür: my-work-tool doldurucudur və INTERNAL_API VPN standartı deyil, ona görə həqiqətən işlətdiyiniz proqramın sənədləşdirilmiş parametrini və öz təsdiqlənmiş hostunuzu qoyun. Eyni sətirdə token və ya parol qoymayın, çünki o, qabıq tarixçəsinə düşür.

Bir neçə əmr bir tapşırığa aid olduqda, qısa və nəzərdən keçirilmiş sarğı skripti dəyişənləri qoyur və sonra onları başladır. Bu, dəyəri terminaldakı hər gələcək əmr üçün qlobal etmədən tək bir tərif saxlayır.

Yenidən yükləyin, yenidən başladın və ya olduğu kimi buraxın

Artıq işləyən alət üçün, varsa, onun öz yenidən yükləməsini və ya iş sahəsi profilini üstün tutun. Əks halda işi saxlayın və parametri oxuyan komponenti yenidən başladın, bu çox vaxt redaktor pəncərəsi deyil, dil serveridir. Pəncərəni yenidən başladıb alt proseslərin ardınca getdiyini güman etmək yenidən yükləmənin işləmədiyi görünüşün səbəbidir.

Qoşulmanın kəsilməsi ayrı qərardır. Fasilə vermək, bağlamaq və ya yenidən qoşulmaq tətbiqə aiddir və son nöqtə dəyişəni buna nəzarət etmir. Dəyişənə ünvan seçən konfiqurasiya kimi baxın, sonradan hansı şəbəkə trafikinin istifadə edilə biləcəyi barədə qayda kimi deyil, və iki məsələ ayrıla bilən qalır.

Əlaqəli məqalələr