VPN գործիքի կարգավորումներ՝ մեկնարկի պահի միջավայր, թե՞ արտահանում կեռիկում
Կեռիկը սկսում է իր սեփական զավակներին, ոչ թե այն կեղևը, որն արդեն բացել եք։ Մեկնարկի պահի միջավայրը մասնավոր վերջնակետը պահում է միայն այն մեկ հրամանում, որը դրա կարիքն ունի։
API վերջնակետ արտահանող VPN կեռիկը փոխում է իր սկսած պրոցեսների միջավայրը, ոչ այն տերմինալի միջավայրը, որն արդեն բաց էր, երբ թունելը բարձրացավ։ Այդ մեկ տարբերությունը բացատրում է «գործիքը դեռ կանչում է հանրային վերջնակետը» հաղորդումների մեծ մասը։ Կարգավորումը տեղադրելու երկու աշխատունակ տեղ կա, և ընտրությունը կախված է նրանից, թե ով է այն սպառում և որքան հաճախ է այն փոխվում։ Համեմատեք դրանք նախքան ևս մեկ մեկնարկային սկրիպտ ավելացնելը։
Երկու տեղ, որտեղ կարգավորումը կարող է ապրել
Առաջին տարբերակը նախածանցն է հենց հրամանի վրա՝ արժեքը գոյություն ունի միայն այդ մեկ կանչի համար և անհետանում է դրա հետ։ Երկրորդ տարբերակը արտահանումն է միացման կեռիկի ներսում, որը հասնում է յուրաքանչյուր պրոցեսի, որ կեռիկը սկսում է այդ կետից հետո։ Դրանք տարբերվում են ընդգրկմամբ և կյանքի տևողությամբ, ոչ շարահյուսությամբ, և այդ տարբերությունը որոշում է ձախողումների մեծ մասը։
| 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 |
Աղյուսակը կեռիկին էժան տեսք է տալիս և թաքցնում իրական հաշիվը՝ այն մասնավոր վերջնակետ է ընտրում նաև այն հրամանների համար, որոնք որևէ կապ չունեն առաջադրանքի հետ։ Կարդացեք յուրաքանչյուր տողը որպես սահմանափակում, ոչ որպես նախընտրություն։ Եթե վերջնակետը փոխվում է առաջադրանքից առաջադրանք, նախածանցը հաղթում է ճշգրտությամբ, թեկուզ արժենա մեկ ստեղնահարում։
Ինչու կեռիկը չի կարող հասնել արդեն բաց կեղևին
Միջավայրի փոփոխականները պրոցեսին տրվում են պրոցեսի պատկերը ստեղծելիս։ Միացումից առաջ սկսված կեղևը պահում է ստացած պատճենը, և կեռիկի ներսում կատարված արտահանումը հեռարձակում չէ մեքենայի յուրաքանչյուր պրոցեսին։ Այն ժառանգում են միայն կեռիկի սեփական զավակները։ Կեղևի սեփական զավակները վերցնում են այն, ինչ կեղևն ունի իրենց մեկնարկի պահին, և դրա համար է, որ նույն հրամանը կարող է աշխատել մի տերմինալում և ձախողվել մյուսում։
Նույնը վերաբերում է գրաֆիկական խմբագրիչին։ Նրա ընդլայնումների հոսթը, ներկառուցված տերմինալը և ֆոնային լեզվի սերվերը ճյուղավորվել են մեկնարկի ժամանակ և պահում են իրենց պատճենները։ Թղթապանակը նորից բացելը պարտադիր չէ, որ վերագործարկի այդ զավակներին, ուստի ավելացված կարգավորումը դեռ այդպես էլ չի հասնում։
Ամենաէժան փորձարկումը փոփոխականը տպելն է այն տեղից, որտեղ ձախողվում է, ոչ այն կեղևից, որն աշխատում է։ Եթե ձախողվող պրոցեսը սկսվել է թունելից առաջ, արտահանումը ոչ մի հնարավորություն չի ունեցել։
Հրամանից հրաման ձևը՝ գրված
Նախածանցը ընտրությունը տեսանելի է պահում այն հրամանում, որն օգտագործում է այն, ինչը օգնում է, երբ վերջնակետը փոխվում է առաջադրանքների միջև
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
Հրամանը միայն օրինակ է՝ my-work-tool տեղապահ է, և INTERNAL_API VPN ստանդարտ չէ, ուստի փոխարինեք այն ձեր իրականում գործարկվող ծրագրի փաստաթղթավորված կարգավորմամբ և ձեր սեփական հաստատված հոսթով։ Մի՛ դրեք նշան կամ գաղտնաբառ նույն տողում, որովհետև այն հայտնվում է կեղևի պատմության մեջ։
Երբ մի քանի հրաման պատկանում է մեկ առաջադրանքի, կարճ ստուգված փաթաթող սկրիպտը սահմանում է փոփոխականները, ապա գործարկում դրանք։ Այդպես պահպանվում է մեկ սահմանում՝ առանց արժեքը տերմինալի բոլոր ապագա հրամանների համար գլոբալ դարձնելու։
Վերբեռնեք, վերագործարկեք կամ թողեք այդպես
Արդեն աշխատող գործիքի համար նախընտրեք նրա սեփական վերբեռնումը կամ աշխատանքային տարածքի պրոֆիլը, եթե ունի։ Հակառակ դեպքում պահեք աշխատանքը և վերագործարկեք կարգավորումը կարդացող բաղադրիչը, որը հաճախ լեզվի սերվեր է, ոչ խմբագրիչի պատուհանը։ Պատուհանը վերագործարկելը և ենթադրելը, որ զավակ պրոցեսները հետևել են դրան, հենց այն է, ինչի պատճառով վերբեռնումը թվում է, թե չի աշխատում։
Անջատումը առանձին որոշում է։ Դադարեցնելը, փակելը կամ վերամիանալը պատկանում է հավելվածին, և վերջնակետի փոփոխականը դա չի կառավարում։ Վերաբերվեք փոփոխականին որպես հասցե ընտրող կոնֆիգուրացիա, ոչ որպես կանոն այն մասին, թե հետո որ ցանցային երթևեկությունն է թույլատրվում, և երկու հարցերը մնում են անջատելի։