Նման սեանսները մնում են միացված, մինչ խմբագրիչը մեկնարկում է, ապա էկրանը դադարում է թարմանալ, թեև SSH գործընթացը ակնհայտորեն կենդանի է։ Մուտքագրումը ոչինչ չի տալիս, Ctrl-C-ն կարծես ոչինչ չի անում, և ակնհայտ եզրակացությունն այն է, որ VPN-ը ինչ-որ բան գցել է։ Շատ դեպքերում թունելը կարգին է, իսկ հեռավոր կեղծ տերմինալը գտնվում է մի վիճակում, որը ոչ ոք չի նախատեսել, որովհետև արձագանքը, կանոնական մուտքը և հոսքի կառավարումը ապրում են տերմինալում, ոչ թե ցանցում։ Պարզել, թե այդ երեքից որն է տեղաշարժվել, երկու հրամանի աշխատանք է։

Կախումը ապրում է տերմինալում, ոչ թե թունելում

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

Համեմատեք տերմինալները՝ նախքան որևէ եզրակացություն անելը։ Նույն խմբագրիչով երկրորդ սեանսը ապացուցում է, որ հաճախորդը և ուղին կարող են կատարել աշխատանքը. այն ոչինչ չի ասում այն տերմինալի մասին, որի դրոշները կոտրված են։

Կարդացեք կարգավորումները այն տերմինալի վրա, որը կախվել էր

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

tty
stty -a
stty -g

Երեք դրոշախումբ բացատրում են այս հաշվետվությունների մեծ մասը։ Արձագանքի կարգավորումները որոշում են՝ ստեղնահարվածները ընդհանրապես երևու՞մ են, ուստի անջատված արձագանքով տերմինալը մեռած է թվում, մինչ shell-ը ստանում է ամեն նշան։ Կանոնական ռեժիմը որոշում է՝ ծրագիրը մուտքը տեսնու՞մ է տող առ տող, ուստի կանոնական ռեժիմում թողնված տերմինալը հում ռեժիմի հավելվածին ստիպում է թվալ, թե այն անտեսում է ստեղները մինչև Enter։ Հոսքի կառավարման կարգավորումները որոշում են՝ տերմինալը հնազանդվու՞մ է XON և XOFF նշաններին, և այդ խումբն է ստեղծում երեքից ամենահամոզիչ կեղծ կախումը։

Գրանցեք ելքը նախքան որևէ բան փոխելը, հատկապես երբ սեանսը կրում է հատուկ ստեղնազուգորդումներ, որոնցից ինչ-որ մեկը կախված է։ Մեքենայական ձևը ամենաապահով գրառումն է՝ այն վերապահումով, որ այն կախված է իրականացումից և պետք է վերականգնվի այն նույն տեսակի համակարգով, որը ստեղծել է այն։

Վերանորոգեք հենց այն տերմինալը, ոչ թե սեանսը, որտեղ մուտքագրում եք

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

Մեկ այլ shell-ից ուղղակիորեն թիրախավորեք կախված սարքը, որպեսզի տերմինալը, որտեղ աշխատում եք, մնա անձեռնմխելի։

stty -F /dev/pts/7 -a
stty -F /dev/pts/7 sane

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

Ctrl-S-ի թակարդը համոզիչ կախման հետևում

Երբ ծրագրային հոսքի կառավարումը միացված է և սովորական նշանները վերագրված են, Ctrl-S-ը տերմինալին ասում է դադարեցնել ելքի ուղարկումը, իսկ Ctrl-Q-ն՝ շարունակել։ Սեանսը մնում է կենդանի ողջ ընթացքում, մեկ Ctrl-Q-ն հաճախ ամբողջ վերանորոգումն է, և ոչ մի գրանցամատյանում ոչինչ չի երևում, և այսպես է այս կախումը վերապրում այսքան էսկալացիաներ։

Զննեք փաստացի կարգավորումները՝ դրանք ենթադրելու փոխարեն։ Մեկնարկի և կանգի նշանները կարող են վերագրվել կամ անջատվել, և անջատված հոսքի կառավարումով տերմինալը չի արձագանքի դրանցից ոչ մեկին։

Եթե վիճակը վերադառնում է, կամ SSH-ն ինքն է կանգ առնում

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

Երբ սովորական SSH երթևեկությունը նույնպես կանգ է առնում, կամ վերանորոգումը ոչինչ չի փոխում, տերմինալը դադարում է կասկածյալ լինելուց։

ssh -vvv [email protected]
ping -M do -s 1400 -c 3 host.example.com

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

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