PID ֆայլը կա, թունել չկա. OpenVPN-ը երբևէ աշխատե՞լ է:
Մնացած PID ֆայլը ոչինչ չի ասում թունելի աշխատելու մասին։ Նախքան այն ջնջելը ստուգեք ծառայությունը, գործընթացի մեկնարկի ժամը և գործարկիչի պայմանագիրը։
Երբ գործարկիչը հրաժարվում է սկսել OpenVPN-ը, որովհետև PID ֆայլ արդեն գոյություն ունի, բնական ընթերցումն այն է, որ ինչ-որ տեղ թունել է աշխատում։ Այդ ընթերցումը բավական հաճախ է սխալ, որպեսզի արժենա ստուգումը նախքան որևէ բան ջնջելը։ Գործարկման պանակում գտնվող ֆայլը հաշվառում է, և հաշվառումը վերապրում է խափանումները, վերագործարկումները և ընդհատված անջատումները, որոնք գործընթաց չեն թողել։ Երկու հարց է որոշում գործը. կա՞ կենդանի գործընթաց, և այդ գործընթացը պատկանո՞ւմ է այս օրինակին։
Սկսեք ծառայությունից, ոչ թե ֆայլից
Հրաժարումը սովորաբար գալիս է գործարկիչից, ոչ թե բուն OpenVPN-ից։ Այն կարդում է ուղի, այնտեղ ինչ-որ բան գտնում և կանգ է առնում նախքան կարգավորումը վերլուծելը։ Հետևաբար առաջին հարցը գործարկիչի պայմանագրի մասին է, ոչ թե թունելի։
Կարդացեք հաղորդագրությունը տպած միավորը կամ սկրիպտը և նշեք երեք բան. ստուգվող ուղին, հայտարարված ծառայության տեսակը և արդյոք այն ընդհանրապես պատասխանատու է ֆայլը գրելու համար։ Ժամանակակից միավորը կարող է օգտագործել պարզ կամ ծանուցող հսկողություն և երբեք չդիպչել PID ֆայլին, մինչդեռ հին init սկրիպտը կարող է ինքնուրույն ստեղծել այն։ Ստուգումը մի մոդելից մյուսը պատճենելը հենց այսպիսի հրաժարում է առաջացնում։ Պարզեք, թե որ մոդելն է օգտագործվում, նախքան ինչ-որ բան մեկնաբանելը։
Միայն այդ ժամանակ հարցը դառնում է՝ արդյոք օրինակն իրականում աշխատում է։
Ստուգեք՝ արդյոք այդ նույնացուցիչը պատկանում է ձեր օրինակին
Ֆայլի թվանշանը վկայում է, որ թիվ է գրվել։ Այն չի վկայում, որ այդ նույնացուցիչով գործընթաց հիմա գոյություն ունի, և, իհարկե, չի վկայում, որ գործընթացը ձերն է, որովհետև նույնացուցիչները վերագործարկումից հետո նորից օգտագործվում են։
Համեմատեք գործընթացի մեկնարկի ժամը ֆայլի ժամանշանի հետ, կատարվող ֆայլը միավորի հրամանի հետ, իսկ ծառայության անդամակցությունը՝ միավորի անվան հետ։ Երեքից որևէ մեկում անհամապատասխանությունը նշանակում է, որ դուք հաշվառում եք նայում, ոչ թե թունել։
Կոնտեյներներ կամ մի քանի անվանատարածքներ աշխատացնող հոսթում նույնացուցիչը կարող է իմաստալից լինել մի տեսքում և բացակայել մյուսում։ Գործընթացի չտեսնելը նույնպես դրա բացակայության ապացույց չէ, եթե ձեր հաշիվը չի կարող ստուգել այն։ Ստուգեք այն համատեքստից, որն օգտագործում է գործարկիչը, նախքան եզրակացություններ անելը։
systemctl status [email protected]
ps -o pid,lstart,args -p "$(cat /run/openvpn/vpn.pid)"Ինչ էր խոստացել գործարկիչը ֆայլի հետ անել
PIDFile= ծառայության կառավարիչին ասում է, թե որտեղից կարդալ հիմնական գործընթացի նույնացուցիչը։ Կառավարիչը այդ ֆայլը չի գրում, սակայն անջատումից հետո հեռացնում է մնացածը, և դա է պատճառը, որ ընդհատված ելքը կարող է ֆայլ թողնել։
Պատասխանատվության այդ բաժանումը բացատրում է երկու ախտանիշ, որոնք մարդիկ հայտնում են որպես սխալ։ Ֆայլը, որը երբեք չի հայտնվում, նշանակում է, որ դեմոնը կամ դրա սկրիպտը չի կարողացել այն գրել, ոչ թե այն, որ հսկողությունը սխալ է կարգավորված։ Ֆայլը, որը վերապրում է կանգառը, նշանակում է, որ անջատման ուղին երբեք չի ավարտվել։
Այն նաև բացատրում է, թե ինչու ներկա ուղեցույցները խորհուրդ են տալիս խուսափել այդ կոնվենցիայից, երբ հսկողությունը կարող է ուղղակիորեն հետևել հիմնական գործընթացին։ Այդ ուղեցույցները թույլտվություն չեն փաթեթավորված միավորի տեսակը փոխելու համար, որովհետև դեմոնի առաջին պլանի, ճյուղավորման կամ ծանուցման վարքը պետք է համապատասխանի այն, ինչ հայտարարում է միավորը։ Փոխեք տեսակը առանց դեմոնը փոխելու, և կստանաք միավոր, որը ձախողում է հայտնում, մինչ թունելն աշխատում է, կամ հակառակը։ Համապատասխանեցրեք զույգը, կամ թողեք երկուսն էլ։ systemd ծառայության տեղեկատուն նկարագրում է սեփականության բաժանումը։
Մաքուր անջատում ընդդեմ ընդհատված ելքի
Մաքուր կանգառը խնդրում է դեմոնին դուրս գալ, սպասում է նրան և թույլ է տալիս կառավարչին կարգի բերել սեփական հաշվառումը։ Ընդհատված ելքը, սպանված գործընթացը կամ անջատման կեսին վերագործարկումը բաց են թողնում այդ հաջորդականության մասերը, և ֆայլը այն է, ինչ մնում է։ Խափանումից հետո այն գտնելը ձեզ ասում է, որ անջատումը չի ավարտվել, ոչ թե ինչ-որ բան լսում է։
Համեմատեք ֆայլի ժամանշանը վերջին բեռնման և միավորի վերջին կանգառի հետ։
Այնուհետև ուղղակիորեն ստուգեք կենդանի ապացույցները։ VPN պորտին կապված սոքեթը և հասցե ունեցող թունելային ինտերֆեյսը ապացույց են, որ ինչ-որ բան աշխատում է, այնպես, ինչպես գործարկման պանակի տեքստային ֆայլը երբեք չի լինում։ Եթե երկուսն էլ բացակայում են, ոչինչ չի աշխատում, ինչ էլ պնդի ֆայլը։
Դադարեցրեք ֆայլը ջնջելը սովորության ուժով
Այն ջնջելը օրինական վերականգնման քայլ է, երբ արդեն պարզել եք, որ ոչ մի օրինակ չի տիրապետում դրան և որ գործարկիչը փաստագրում է այս վարքը։
Որպես մշտական սովորություն մեկնարկից առաջ, այն խաթարում է այն ստուգումը, որը դուք շրջանցում եք։ Եթե հնացած ֆայլերը վերադառնում են յուրաքանչյուր մաքուր կանգառից հետո, գրողն ու անջատման կենսացիկլը համաձայն չեն, թե ում է պատկանում ուղին, և այդ անհամաձայնությունը հենց այն սխալն է, որ արժե ուղղել։
Պահեք հոսթ մուտքի անկախ ուղի, գործարկեք մեկ օրինակ դրա սովորական կառավարչով և կարդացեք առաջին արդյունքը։ Հաջորդ մարդը ստանում է միավոր, որը կա՛մ աշխատում է, կա՛մ բացատրում է իրեն։