2020-12-06-4693782

պատմեմ ձեզ ինչ ահաւոր սխալ եմ արել վերջերս։

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

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

սերուերնոցից դուրս կան մարդկանց workstation մեքենաներ, որոնց վրայ լինուքս ա եւ մասնագիտական ծրագրակազմ։ տան պանակը, ինչպէս եւ այլ գործ անելու պանակները՝ հեռակայ են, կպնում են աւտոմատ, ըստ անհրաժեշտութեան։ մո՞ւտք ես գործում օհ՝ քեզ տան պանակ ա պէտք՝ այդ պահին էլ օհ֊ն այն կը կպցնի հեռաւոր ռեսուրսից։

հիմա, եթէ դատա ցենտրը, եւ storage անջատելու հարց ա լինում՝ user workstation֊ները, մեծ հաւանականութեամբ, կախուած վիճակում են լինելու՝ nfs share֊եր չգտնելու պատճառով։ ու չի էլ լինի դրանք հեռավար վերամեկնարկել, զի դրանց վրայ reboot մեծ մասամբ չի աշխատի։ օհը֊ կը փորձի անջատել սերուիսներ, բայց կան պրոցեսներ, որ հնարաւոր չի լինի անջատել՝ ըստ դիզայնի։

այդ պատճառով մտածեցի էս անգամ սէնց բան անել՝ սիրում եմ at հրամանը։ կարող ես ասել՝ վաղը, էս ժամին, սէնց բան արա։ մտածեցի՝ պատրաստեմ վաղը, էս ժամին, երբ ենթակառուցուածքների ծառայութիւնները վերադարձուած լինեն՝ մեքենաները վերբեռնելու հրաման։

հարցն այն ա, որ ինչպէս ասացի՝ վերբեռելու սովորական հրամանը, որ համակարգի տարբեր ծառայութիւնները կանգնեցնում ա՝ դժուար աշխատէր մեքենաների մեծ մասի վրայ՝ համարեա գրեթէ անջատուած վիճակում էին մնալու։ ու ապա պէտք կը լինէր հատ հատ մօտենալ, ձեռքով վերբեռնել։

այդ պատճառով մտածեցի օգտագործել լինուքս միջուկի հնարաւորութիւնը՝ /proc ֊ն օգտագործելով ստիպել միջուկին անջատել եւ միացնել համակարգիչը, ինչպէս կանէիք «ռիսեթի» կոճակը սեղմելով։ էդ կոպտութիւնը մեղմելու համար նաեւ կարելի ա միջուկին նոյն միջոցներով ստիպել ֆայլային համակարգի բուֆերները նախապէս գրել, որ այդ ֆայլային համակարգը մինիմալ վնասուածքներ ստանայ, կամ չստանայ։

այսպէս, ես մտածեցի որ at֊ն կը կանչի էդ լինուքսի հնարաւորուիթւը՝ հարդուեր ռիսեթ անելու։

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

իսկ միացրեց աւելի ուշ, քան իմ at֊ին ասած ժամանակն էր։ ես ենթադրել էի, որ at֊ն ստարտ լինի, կը մտածի՝ լաւ, ժամն անցել ա, երեւի էլ չանեմ, էն ժամին պիտի անէի։

բայց պարզուեց, մեքենաների ուղիղ կէսը (հետաքրքիր ա, որ էդպէս եղաւ բաշխումը), ընկան ռեբութ լուփի մէջ։ միանում էին, միանում էր at դեմոնը, at֊ն տեսնում էր որ քանի ժամ առաջ թասկ ունի դրուած, ու այն դե՛ռ չի կատարուել, պանիկո՛ւմ էր, ու սկսում էր շտապ էդ թասքը կատարել։

իսկ թասքը՝ իմ մեղքի մասը՝ կտրուկ թասք ա՝ անջատում էր կարգիչն աւելի արագ, քան at֊ն հասցնում էր իր մատեանում գրել, որ գործն արուած ա։ յաջորդ անգամ միանում էր՝ տեսնում էր՝ ուշ ա, ժամը ժաիցմ անցել ա, իսկ գործն արուած չի՝ պանիկած էլի ընկնում էր կատարելուն՝ իսկ կատարելով չէր հասցնում նշել որպէս կատարուած։ (:

էսպէս, անասելու տառապել եմ 80 մեքենայի մօտենալով, եւ at֊ի հերթը մաքրելով։ հիւանդ գլխից, ինչպէս ասում են ռուսները՝ ոտքերն են ցաւում։ ինձ մօտ այդ ամէնից ոտքերը չցաւեցին, բայց գլուխը ցաւաց։

ինչպէս գիտենք, ճգնաժամային վիճակներում ամէնն ա աւելի բարդանում։ օրինակ՝ համավարակի պարագայում։

ու յիշեցի, որ նախկինում էլ ես կամ ինչ֊որ մէկը սխալներ անում էինք, ու տաս տարուայ մէջ մի երկու անգամ յիշում եմ, որ պէտք էր եղել բոլոր workstation֊ներին մօտենալ, մի երկու տող բան գրել։ ու դա ինձ նախկինում թւում էր շաաատ բարդ։

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

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

այդ ամէնը, ի դէպ, մի ուիք֊էնդ, որը… էս բարդ տարին ընկերութիւնը որոշեց մեղմել իր աշխատողներին պարգեւելով ազատ մի օր։ եւ փաստացի՝ լոնգ ուիքէնդ։ իսկ թարսի պէս, հէնց այդ գործը, մինչեւ նուիրատւութիւնն արդէն նախատեսուել էր անց կացնել հէնց այդ ուրբաթ օրուանից սկսած։ այսպիսով, երբ ողջ անձնակազմը ոչ միայն տանն էր, այլեւ վայելում էր երկար ուիքէնդ, երբ ընկերներս հաւաքուեցին դարգէթում պուտին ուտելու (դէ we bare bears֊ն եմ բացայայտել, իսկ էնտեղից իմացել կանադական պուտին ուտելիքի մասին, նաեւ կարճ հետազօտութիւնը բացայայտել ա որ այն կարելի ա պատուիրել դարգէթում), ես անց եմ կացրել փոշոտ սեղանների տակ։

իհարկէ, իմ խելքից։ բայց եւ նման սխալներ գրեթէ անխուսափելի են մեր գործում։ իսկ երբ երեւակում ես ժապաւէն՝ երբեմն կը սխալուես։ իսկ երբ կոդ ես գրում՝ երբեմն կը պայթեցնես։ կարճ ասած, ահա ձեզ իմ սխալը, որ իմանաք, ինչ ձեւ սխալներից կարելի ա խուսափել։

#սխալ #իւնիքս #ծրագրաւորում #տեքնոլոգիաներ #օպերացիոն_համակարգեր #պատմութիւն #անկապ

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

պիտակներ՝ սխալ  իւնիքս  ծրագրաւորում  տեքնոլոգիաներ  օպերացիոն_համակարգեր  պատմութիւն  անկապ