VPN alətinin parametrləri: işə salınma mühiti, yoxsa qarmaq daxilində ixrac?
Qarmaq öz alt proseslərini işə salır, artıq açdığınız terminal qabığını deyil. Başlatma mühiti isə şəxsi son nöqtəni yalnız ehtiyac duyan tək əmrdə saxlayır.
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.
| 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 |
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.