Ինչ-որ բան անընդհատ մեկնարկում է OpenVPN միավորը՝ գտեք աղբյուրը
Միավորն անջատելը նույնը չէ, ինչ դրա ակտիվացումը հեռացնելը։ Կարդացեք օրինակը, ձևանմուշի քարտեզը և հակադարձ կախվածությունները նախքան պրոֆիլը ջնջելը։
OpenVPN-ի օրինակը բեռնման ժամանակ հայտնվում է ձեզ անծանոթ անունով, և այն կանգնեցնելը աշխատում է մինչև հաջորդ վերագործարկումը։ Այս օրինաչափությունը նշանակում է, որ դուք հեռացրել եք գործընթացը, բայց ոչ ակտիվացումը։ Դրանք երկու տարբեր օբյեկտներ են, և դրանցից միայն մեկն է երևում կարգավիճակի էկրանին։ Ակտիվացումը գտնելու համար պետք է չորս միայն-ընթերցման հրաման և մեկ որոշում։
Նախ անվանեք ճշգրիտ միավորը
Սկսեք journal-ում միավորի անունից, այլ ոչ պրոֆիլի ֆայլի անունից։ Օրինակը կարող է կոչվել openvpn@, openvpn-client@, openvpn-server@ կամ բաշխմանը բնորոշ մի բան, և անվան գուշակումը ձեզ տանում է սխալ ձևանմուշի։ Կարգավիճակի ելքը նշում է այն միավորը, որն իրականում աշխատել է, և սա միակ անունն է, որ այստեղ նշանակություն ունի։ Պատճենեք այն ճշգրիտ՝ ներառյալ ցանկացած վերջածանց։
Հետևյալ հրամանները նկարագրում են այդ միավորը՝ ոչինչ չփոխելով։ systemctl show-ը հաղորդում է հատվածի ուղին, աղբյուրի ուղին, միավորի ֆայլի վիճակը, ցանկացած drop-in և ինչն է ակտիվացրել այն։ list-dependencies --reverse-ը ցույց է տալիս, թե որ բեռնված միավորներն են մատնանշում դրան։ Երկուսն էլ միայն-ընթերցման են, ուստի գործարկեք դրանք տեսություն կազմելուց առաջ։
Փոխարինեք դիտարկված անունը ամենուր։ Պատճենված օրինակային անունը սխալ ծառայությունը հետաքննելու ամենատարածված եղանակն է, և այն ինքնավստահ պատասխաններ է տալիս միավորի մասին, որը երբեք չի աշխատել։
Կարդացեք ձևանմուշը՝ ֆայլի անունը իմանալու համար
Օրինակի միավորը ձևանմուշի ընդլայնումն է, և ձևանմուշը որոշում է, թե որ կոնֆիգուրացիայի ֆայլն է կարդացվում։ Օրինակին բնորոշ տեղապահով ավարտվող հրամանի տողը լուծվում է օրինակի անվան և վերջածանցի։ Եթե վերջածանցը .conf է, և օրինակը կոչվում է old, ֆայլը old.conf է։ Եթե օրինակը կոչեք old.conf, նույն ձևանմուշը կպահանջի old.conf.conf։
Այս մանրամասնությունը բացատրում է կրկնօրինակների դաս։ Ինչ-որ մեկը ավելացնում է երկրորդ օրինակ սխալ անունով, առաջինը շարունակում է աշխատել, և հոսթը մնում է երկու թունելով և մեկ շփոթեցնող մատյանով։
Կարդացեք գործող ձևանմուշը, այլ ոչ այն ֆայլը, որը հիշում եք, թե խմբագրել եք։ Drop-in-ը կարող է փոխարինել հրամանի տողը, և բեռնման ժամանակ աշխատում է հենց փոխարինումը։
Հետևեք, թե ինչպես է այն մտնում բեռնման գործարքի մեջ
Երեք ուղիներ սովորական են՝ wants կապ թիրախից, պահանջ մեկ այլ միավորից, կամ փաթեթի գեներատորի ստեղծած միավոր։ Հակադարձ կախվածությունների ցանկը ծածկում է առաջին երկուսը որպես բեռնված գրաֆի գրառումներ։ Այն չի ծածկում ժամանակաչափ, կեռ կամ արտաքին հարցում, դրա համար ցանկը ամբողջական աուդիտ չէ, այլ ապացույց։
/run/systemd/generator-ի տակ գեներացված ելքը արտադրանք է, ոչ աղբյուր։ Դրա խմբագրումը պահպանվում է միայն մինչև հաջորդ գեներացումը, դրա համար այնտեղ կիրառված ուղղումը հաջող է թվում և հետո վերադառնում։
Ստուգեք փաթեթի փաստաթղթավորված մուտքը նախքան ենթադրելը, թե որտեղից է կարդում գեներատորը։ Ցուցակի չփաստաթղթավորված սկանավորումը սովորական պատճառն է, թե ինչու միավորը հայտնվում է առանց ակտիվացման կապի։
Հեռացրեք ակտիվացումը, ոչ միայն գործընթացը
Եթե օրինակը ուղղակիորեն ակտիվացված է և իսկապես հնացած, systemctl disable --now-ը կանգնեցնում է այն և մեկ քայլով հեռացնում բեռնման կապը։ Նախ ստուգեք, որ այս թունելը մեքենային ձեր միակ վարչական ուղին չէ։ Հրամանը կենսացիկլի օրինակ է, ոչ թե առաջարկ՝ կանգնեցնել մեքենայի բոլոր VPN-ները։ Կատարեք ստուգումը հրամանից առաջ, ոչ հետո։
Երկու կեսերը բաժանելի են և հաճախ շփոթվում են։ Անջատումը չի կանգնեցնում աշխատող ծառայությունը, իսկ կանգնեցումը չի հեռացնում ակտիվացումը, ուստի մասնակի հրամանը բացատրում է խնդիր, որը վերադառնում է բեռնման ժամանակ։
Անջատված միավորը դեռ կարող է մեկնարկել մեկ այլ միավոր կամ բացահայտ հարցում։ Երբ ակտիվացումը պատկանում է գեներատորին, ուղղեք դրա մուտքը՝ փոխարենը չանջատելով դրա ելքը։ Դիմակավորումը արգելափակում է ավելի շատ ուղիներ, բայց կարող է կոտրել կախվածությունները, ուստի այն չի փոխարինում հասկացողությանը։
Հաստատեք վերագործարկումով, ոչ կարգավիճակի էկրանով
Վերաբեռնեք systemd-ը, եթե միավորների սահմանումները կամ գեներատորի մուտքերը փոխվել են, ապա ստուգեք ստացված վիճակը։ Դեմոնի վերաբեռնումը նոր պրոֆիլ չի մղում աշխատող թունել, ուստի երկու ստուգումներն առանձին են։ Պլանավորեք վերագործարկում և հաստատեք, որ օրինակը բացակայում է, մինչ նախատեսված թունելը դեռ աշխատում է։
Պահեք հին պրոֆիլը, մինչև դրա պատկանելությունը պարզ լինի, ապա հեռացրեք այն նախատեսված գործընթացով։ Հաջողությունը բացակայող միավոր և աշխատող մուտքի ուղի է, ոչ թե մեկ էկրանից բացակայող ձախողված միավոր։