Միացրեք մեքենան, մուտք գործեք և իմացեք, որ թունելը բարձրացավ ու մի քանի վայրկյան անց մահացավ։ Պրոֆիլը կարգին էր, վկայագիրը կարգին էր, և մնացած միակ հետքը այդ գործարկման մատյանն է։ Սովորաբար տեղի է ունեցել մրցավազք՝ միավորը սկսել է նախքան մեքենան հասցե ունենալը, և նրա հայտարարած հերթականությունը չէր նշանակում այն, ինչ թվում է։ Ստորև ամեն ինչ այդ մրցավազքը ապացույցներից հաստատելու և այն պատշաճ փակելու մասին է։

Նպատակակետը հանդիպման կետ է, ոչ կառավարիչ

network-online.target գաղափար չունի, ինչ է ցանցը։ Դա համակարգման կետ է, որը հավաքում է այն ծառայությունը, որը պետք է հետաձգի գործարկումը մինչև կապի պիտանի դառնալը, և սահմանումը պատվիրակում է այն ցանցային կառավարչին, ով տիրապետում է մեքենային։ Աշխատասեղանների և սերվերների մեծ մասում դա նշանակում է սպասման ծառայություն, որը տրամադրում է NetworkManager-ը կամ systemd-networkd-ն։ Եթե ոչ մեկը չմիացնեք, նպատակակետը սպասելու բան չի ունենա, ուստի այն ավարտվում է այն պահին, երբ ինչ-որ բան նրան ներս է քաշում, ինչը կարող է տեղի ունենալ DHCP-ի պատասխանից շատ առաջ։ Ձեր միավորի հերթականության տողը ազնիվ էր և այնուամենայնիվ անօգուտ։

Այսպիսով, առաջին հարցը չէ, թե ինչ է հայտարարում ձեր միավորը։ Հարցն այն է՝ արդյոք այս մեքենայի վրա ինչ-որ բան իսկապես կատարում է սպասումը։

Կարդացեք վերջին գործարկումը, ոչ թե միավորի ֆայլը

Միավորի ֆայլերը նկարագրում են մտադրությունը, իսկ մատյանը՝ ինչ պատահեց։ Պահանջեք միայն այդ գործարկումը, միատոն ժամադրոշմներով, որպեսզի յուրաքանչյուր հաղորդագրություն մեկ ժամացույցի վրա նստի։ Ապա գտեք երկու տող՝ այն պահը, երբ թունելի միավորը սկսեց գործարկվել, և այն պահը, երբ հասցեն հայտնվեց կամ սպասման ծառայությունն ավարտվեց։ Դասավորեք այդ երկու թվերը, և մրցավազքը կամ հաստատվում է, կամ բացառվում։

Կախվածությունների տեսքը հաստատում է դա։ Եթե թունելի միավորի կրիտիկական շղթան սպասման ծառայություն չի պարունակում, ապա այդ ուղու վրա ոչինչ չի հետաձգել գործարկումը, և նպատակակետը չի կատարել ձեր ենթադրած աշխատանքը։ Երկու տեսք, մեկ եզրակացություն։

systemctl list-units --type=service --state=running | grep wait-online
journalctl -b -o short-monotonic -u openvpn-client@office

Ավելացրեք սպասումը, ապա կրկնափորձը

Օգտագործեք drop-in՝ փաթեթավորված միավորը խմբագրելու փոխարեն, որպեսզի փաթեթի թարմացումը լուռ չշպրտի փոփոխությունը։ Երկու ցուցում կարևոր են՝ միավորը պետք է դասավորվի նպատակակետից հետո, և այն պետք է նպատակակետը քաշի նույն գործարքի մեջ։ Միայն դասավորությունը չի կանչում նպատակակետին, դա անում է ցանկությունը։

OpenVPN-ի հաճախորդի փաթեթավորված միավորն արդեն կրում է երկուսն էլ։ Ձեռքով գրված միավորները սովորաբար կրում են մեկը կամ ոչ մեկը, ինչը արժե ստուգել նախքան որևէ բան ավելացնելը։

[Service]
Restart=on-failure
RestartSec=15

Ինչու է ֆիքսված քունը թակարդ

ExecStartPre-ում քունը զգացվում է որպես հերթականության ուղղում և վարվում է որպես լրացուցիչ քայլերով ուշացում։ Այն դանդաղեցնում է յուրաքանչյուր գործարկում, ներառյալ առողջները, և դեռ պարտվում է, երբ կապը ավելի երկար է տևում, քան ձեր ընտրած թիվը։

Ավելի վատ՝ այն թաքցնում է՝ արդյոք սպասման ծառայությունը աշխատում է, ուստի հաջորդ ձախողումը ներկայացվում է որպես բոլորովին նոր խնդիր, այլ ոչ թե նույնը՝ այլ ժամանակով։ Կարճ վերագործարկման ուշացումն ավելի լավ գործիք է՝ առողջ գործարկման դեպքում ոչինչ չի արժենա և կորցրած մրցավազքը վերածում է ևս մեկ փորձի։ Ինտերվալը համեստ պահեք և թույլ տվեք միավորին հաջողել։ Եթե այն հավերժ վերագործարկվում է, պրոֆիլը կոտրված է, և ոչ մի քանակի կրկնափորձ դա չի փոխի, ուստի կարդացեք մատյանը՝ ինտերվալը բարձրացնելու փոխարեն։

Երբ հերթականությունը ճիշտ է, բայց անունները դեռ ձախողվում են

Թունելի երթուղով ակտիվ միավորը նշանակում է, որ դասավորությունը կատարել է իր գործը, և մնացած սխալը մեկ շերտ վերևում է։ Սովորական ձևը լուծիչի կարգավորումն է, որը թունելի up սկրիպտը կիրառում է նախքան կապը կամ լուծիչը պատրաստ կլիներ այն պահելուն։ Համեմատեք լուծիչի վիճակը ձախողման ընթացքում այն վիճակի հետ, որ լինում է թունելի միավորի վերագործարկումից հետո։

Եթե վերագործարկումը շտկում է որոնումները, դուք ունեք գործարկման հերթականության թերություն, ոչ թե սխալ DNS սերվեր, և այդ երկուսին տարբեր ուղղումներ են պետք։ Ապա ամբողջը ապացուցեք սառը գործարկմամբ, ոչ թե ծառայության վերագործարկմամբ, որովհետև վերագործարկումն աշխատում է արդեն բարձրացած ցանցի դեմ և կթաքցնի հենց այն թերությունը, որին հետապնդում եք։ Կրկնեք դա դիտավորյալ դանդաղ կապով և միավորը, որը աշխատում է միայն արագ ցանցի դեպքում, դեռևս համարեք կոտրված։

Առնչվող հոդվածներ