Linux-ում VPN և պրոքսի ծառայությունների հերթական անջատումը
Կանգնեցրեք սպառողին, քանի դեռ ուղին կա, հետո պրոքսին, հետո թունելը դրա սեփականատիրոջ միջոցով։ Օգտագործեք ExecStop-ը և TimeoutStopSec-ը գիտակցաբար, ոչ լայն սպանություն։
Աշխատանքի ժամանակ պրոքսիի առկայությամբ անջատման կախվելը հազվադեպ VPN-ի սխալ է, նույնիսկ երբ VPN-ն էկրանին երևացող վերջին բանն է։ Պրոքսիի հետևում գտնվող հավելվածները դեռ սպասում են ուղու, որը հենց նոր պիտի անհետանա, և թունելին տիրող միավորից դեռ չեն խնդրել փակել այն։ Այն, ինչ երևում է որպես դանդաղ ծառայություն, սովորաբար հերթականության խնդիր է։ Հերթականությունը լուծում է սրանցից ավելին, քան ժամկետի ցանկացած փոփոխություն։
Աշխատեք դեպի դուրս՝ հակառակ հերթականությամբ՝ սկզբում սպառողները, հետո պրոքսին, հետո թունելը, և յուրաքանչյուրին կանգնեցնում է այն բաղադրիչը, որը սկսել է այն։
Թվարկեք միավորները, նախքան որևէ բան կանգնեցնելը
Գրի առեք սովորական աշխատանքում ներգրավված հավելվածի միավորը, պրոքսիի միավորը և VPN-ի սեփականատիրոջը։ Ավելացրեք ցանկացած լուծիչ կամ օգնական, որն ունի իր ապամոնտաժումը, որովհետև հենց դրանք են մարդիկ մոռանում գիշերվա ժամը երկուսին։ Առանց այդ ցանկի՝ առաջին արգելակման հրամանը, որ մուտքագրեք, զոհ է ընտրում պատահականորեն։
Անունները թույլ ապացույց են։ Օգտվողի պրոքսին, համակարգի պրոքսին և մեկ այլ հաշվի թունելը կարող են կիսել անունը՝ ունենալով լիովին անկապ կենսացիկլեր։
Ավարտեք աշխատանքը, ապա կանգնեցրեք սպառողին
Պլանավորված անջատումը սկսվում է հավելվածից՝ թողեք այն ավարտի կամ չեղարկի իր հարցումները, ապա կանգնեցրեք պրոքսին նրա ծառայության միավորի միջոցով։ Եթե հավելվածը պետք է շարունակի աշխատել թունելի անհետանալուց հետո, կազմակերպեք դա գիտակցաբար՝ թողնելու փոխարեն այն կախված մի ուղուց, որը հենց նոր պիտի անհետանա։
Անջատման ընթացքում ընթացքի մեջ գտնվող հարցումները պետք է գրանցվեն, որովհետև հենց այնտեղից է գալիս կրկնվող փորձերի փոթորիկը հաջորդ մեկնարկին։
ExecStop-ը և ExecStopPost-ը տարբեր գործիքներ են
ExecStop=-ը համաժամանակյա անջատման գործողությունն է, ExecStopPost=-ը՝ մաքրում, որն աշխատում է նույնիսկ ձախողված մեկնարկից հետո։ Անջատման հրամանը, որը միայն ազդանշան է ուղարկում պրոցեսին և վերադառնում, թույլ է տալիս systemd-ին առաջ գնալ, մինչ սպառողը դեռ դատարկում է։ Ամեն ինչ, ինչ պետք է տեղի ունենա ամեն դեպքում, պատկանում է հետին տարբերակին, իսկ ամեն ինչ, ինչ պետք է արգելափակի անջատումը՝ համաժամանակյա տարբերակին։ Ստուգեք գործող միավորը և դրա հավելումները՝ փաթեթի ֆայլը տեղում խմբագրելու փոխարեն։
Կախվածությունների գրաֆը դասավորում է անջատման աշխատանքները։ Այն ասինխրոն սկրիպտը համաժամանակյա չի դարձնում և հեռավոր հավելվածին չի ստիպում պահպանել իր տվյալները։
Սահմանափակեք անջատումը և իմացեք, թե ինչ արժե սահմանը
TimeoutStopSec=-ը սահմանափակում է և՛ անջատման հրամանը, և՛ ծառայության սեփական ավարտը, և systemd-ը ժամկետի լրանալիս անցնում է հարկադիր սպանության։ Ընտրեք արժեքը հավելվածի իրական դատարկման վարքից, և գրեք, թե ինչ կարող է կորչել, երբ այն գործի։ Այն թիվը, որն ընտրվել է, որովհետև մեքենան պետք է ավելի արագ անջատվի, տվյալների կորստի կարգավորում է քողարկված։
Երբ անջատումը դեռ դանդաղ է, գրանցեք միավորը, նրա զավակ պրոցեսները, մատյանի միջակայքը և ժամկետի արդյունքը։ Յուրաքանչյուր ժամկետ կրճատելը կամ լայն սպանության դիմելը հենց այն ճանապարհն է, որով մաքուր անջատումները հաջորդ բեռնման ժամանակ վերածվում են վնասված վիճակի։
Անջատեք կապը սեփականատիրոջ միջոցով, ապա փորձեք երեք դեպք
Երբ սպառողները կանգնած են, խնդրեք թունելին տիրող կառավարիչից անջատել կապը՝ systemd-ի օրինակը, NetworkManager-ի ակտիվ կապը կամ մատակարարի ծառայությունը։ Անկապ OpenVPN պրոցեսի սպանությունը պարտադիր չէ, որ հանի այն սեսիան, որը տվել է ուղին, և վերսկսման քաղաքականությամբ պրոքսին կարող է նորից ստեղծել հարցում, մինչ դուք ապամոնտաժում եք ուղին։ Համաձայնեցրեք այդ քաղաքականությունը պլանավորված անջատման հետ՝ նախքան սկսելը։
Փորձեք սովորական անջատում, ակտիվ հարցումով անջատում և անջատում, որտեղ թունելը ձախողվում է առաջինը։ Ժամկետով կրկնվող հաջորդականությունը գերազանցում է մեկ անգամ աշխատող արագ անջատմանը։