API төгсгөлийн цэгийг экспортолдог VPN дэгээ нь өөрийн эхлүүлж буй процессуудын орчныг өөрчилдөг, туннель өргөгдөх үед аль хэдийн нээлттэй байсан терминалын орчинг биш. Энэ нэг ялгаа нь «хэрэгсэл одоо ч нийтийн төгсгөлийн цэгийг дуудаж байна» гэсэн мэдээллийн ихэнхийг тайлбарладаг. Тохиргоог байрлуулах хоёр ажиллах боломжтой газар бий, сонголт нь үүнийг хэн хэрэглэх, хэр олон өөрчлөгдөхөөс хамаарна. Өөр эхлүүлэх скрипт нэмэхийн өмнө хоёрыг харьцуулна уу.

Тохиргоо амьдарч болох хоёр газар

Эхний хувилбар бол командын өөр дээрх угтвар: утга нь тэр нэг дуудлагад л байх бөгөөд түүнтэй хамт алга болно. Хоёр дахь хувилбар бол холболтын дэгээ доторх экспорт бөгөөд тэр цэгээс хойш дэгээний эхлүүлсэн бүх процесс руу хүрнэ. Тэд хамрах хүрээ, наслалтаараа ялгаатай, синтаксоор биш, энэ ялгаа нь ихэнх бүтэлгүйтлийг шийддэг.

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 стандарт биш, тиймээс таны үнэхээр ажиллуулж буй программын баримтжуулсан тохиргоо болон өөрийн зөвшөөрсөн хост орлуулна уу. Нэг мөрөнд токен эсвэл нууц үг бүү тавь, учир нь тэр бүрхүүлийн түүхэнд ордог.

Хэд хэдэн команд нэг даалгаварт хамаарах бол богино хянасан боох скрипт хувьсагчдыг тохируулаад дараа нь тэдгээрийг эхлүүлдэг. Ингэснээр ганц тодорхойлолт хадгалагдаж, утга нь терминалын бүх ирээдүйн командэд глобал болохгүй.

Дахин ачаал, дахин эхлүүл, эсвэл хэвээр нь орхи

Аль хэдийн ажиллаж буй хэрэгслийн хувьд боломжтой бол өөрийн дахин ачааллыг эсвэл ажлын талбарын профайлыг илүүд үз. Эс бөгөөс ажлаа хадгалаад тохиргоог уншдаг бүрэлдэхүүнийг дахин эхлүүл, энэ нь ихэвчлэн хэлний сервер бөгөөд редакторын цонх биш. Цонхыг дахин эхлүүлээд хүү процессууд түүнийг дагасан гэж таамаглах нь дахин ачаалалт ажиллахгүй мэт харагдах шалтгаан.

Салгах нь тусдаа шийдвэр. Түр зогсоох, хаах эсвэл дахин холбогдох нь програмынх, төгсгөлийн цэгийн хувьсагч үүнийг удирддаггүй. Хувьсагчийг хаяг сонгодог тохиргоо гэж үз, дараа нь ямар сүлжээний урсгал ашиглаж болох тухай дүрэм гэж биш, хоёр асуудал салангид хэвээр үлдэнэ.

Холбоотой нийтлэлүүд