14.1 Getty (օգտագործված / etc / inittab)
Getty- ի ներածություն
Համակարգիչը սկսում է (կամ անջատում է վազքի մակարդակները) սերիական պորտում (եւ դրա հետ կապված տերմինալը) մուտք գործելու գործընթացը ստանալու համար getty հրամանը պետք է տեղադրվի / etc / inittab ֆայլում: Հրամանի տողից վազողը կարող է խնդիրներ առաջացնել (տես, եթե getty- ը հրամանի տողում է. Ծրագրերը դադարել են տեսնել, թե ինչու): Getty- ը ստանում է TTY (տերմինալ) գնում: Յուրաքանչյուր տերմինալ պետք է իր սեփական հրամանատարությունը: Կա նաեւ առնվազն մեկ getty հրաման յուրաքանչյուր կոնֆերանսի / etc / inittab ֆայլում: Գտեք այս եւ դնում հեթանոսական հրամանները այն իրական տերմինալների կողքին: Այս ֆայլը կարող է պարունակել տեքստային տերմինների համարանիշի getty տողեր, որոնք մեկնաբանվում են այնպես, որ դուք պետք է անեք այն ամենը, որ դրանք չհայտնաբերեք (հեռացնել առաջատարը #) եւ փոխել մի քանի փաստարկներ:
Այն փաստարկները, որոնք թույլատրվում են, կախված են նրանից, թե ինչից եք օգտվում:
Ուղիղ միացված տերմինալների համար լավագույն երկու նիշերը հետեւյալն են `
- agetty (երբեմն կոչվում է getty): Շատ հեշտ է ստեղծել: Ոչ config ֆայլեր: Տեսեք, թեթեւ
- Getty (getty_ps- ի մի մասը)
Լավագույն երկու նվագարկիչներ, որոնք հասանելի են մոդեմներ հավաքելու համար (խուսափեք անմիջական կապակցված տերմինալների համար) հետեւյալն են.
- mgetty: լավագույնը մոդեմների համար; աշխատում է տերմինալների համար, բայց ոչ պակաս
- uugetty: միայն մոդեմների համար; getty_ps փաթեթի մի մասը
Պարզ Gettys օգտագործելու համար, եթե չեք օգտագործում իրական տեքստային տերմինալ: Linux- ի շատ օգտվողներ դրանցից մեկը օգտագործում են իրենց մոնիտորի վրա:
- հազ
- fbgetty
- fgetty
- ռեժիսոր
Ձեր Linux- ի բաշխումը կարող է կամ ps_getty- ով կամ agetty- ով տեքստային տերմինալների համար: Որոշ բաշխումներ չեն ապահովում: Ցավոք սրտի, նրանք հաճախ ասում են, որ դա «գետտ» է, ուստի անհրաժեշտ է որոշել, թե որն է այն, ինչից հետո դուք կցուցադրեք այն փաստարկները, որոնք դրված եք / etc / inittab- ում: Debian- ն օգտագործում է ցանցը (util-linux փաթեթում): RedHat- ը եւ Fedora- ն օգտագործեցին ps_getty, որը գտնվում է `ps_getty
Որպես վերջին հանգամանք, փորձեք որոշել, թե ինչ ստացանք ունեք, կարող եք ստուգել դրա գործարկվող կոդը (սովորաբար / sbin): ps_getty- ը ունի այս կոդը ներկառուցված / etc / gettydefs: Որոնել այն, գնալ / sbin եւ մուտքագրել:
ստեղներ getty | grep getty
Եթե գետը իրականում ծագում է, վերը նշվածը ոչինչ չի բերի: Այնուամենայնիվ, եթե դուք ունեք մուտքագրված գրառումներ:
գետի -հ
պետք է ցույց տա ընտրանքներ [-hLmw]:
Եթե դուք չեք ստանում getty ցանկանում եք ստուգել այլ բաշխման եւ օտար ծրագիրը փոխանակելու RPM եւ Debian փաթեթների միջեւ: Աղբյուրը կոդը կարող է ներբեռնել Getty Software- ից:
Եթե դուք չեք օգտագործում մոդեմի հսկման գծերը (օրինակ, եթե դուք օգտագործում եք միայն 3 հաղորդիչի նվազագույն քանակը `հաղորդեք, ստացեք եւ ընդհանուր ազդանշանային հիմք) պետք է թույլ տաք, որ դա տեղյակ լինի« տեղական »դրոշի միջոցով: Այս ձեւաչափը կախված է նրանից, թե ինչից եք օգտվում:
Getty- ը մուտքից հետո (եւ կարող է պատասխանել)
Մուտք գործելուց հետո դուք կիմանաք («top», «ps -ax», կամ «ptree» օգտագործելով), որ getty գործընթացը այլեւս չի աշխատում: Ինչ է պատահել դրա հետ: Ինչու getty կրկին վերսկսվի, եթե ձեր սաղմոնը սպանվի: Ահա թե ինչու:
Ձեր անունը գրելուց հետո getty- ը տանում է այն եւ կոչում է մուտքի ծրագիր, որը պատմում է ձեր օգտագործողի անունը: Getty գործընթացը փոխարինվում է մուտքի գործընթացով: Մուտքային գործընթացը պահանջում է ձեր գաղտնաբառը, ստուգում է այն եւ սկսում է գործընթացը նշված ձեր գաղտնաբառը ֆայլում: Այս գործընթացը հաճախ հաճախակի է բաշը: Եթե այո, ապա bash սկսվում է եւ փոխարինում մուտքի գործընթացը: Նշենք, որ մեկ պրոցեսը փոխարինում է մյուսին, եւ որ bash- ի շերտը սկզբից սկսեց որպես «getty» գործընթաց: Դրա հետեւանքները կբացատրվեն ստորեւ:
Այժմ / etc / inittab ֆայլում, getty- ը պետք է պատասխան տա (վերսկսելու), եթե սպանվի: Այն ասում է, որ այդ գիծը, որը կոչ է անում getty: Բայց եթե bash shell (կամ մուտքի գործընթացը) սպանվում է, getty respawns (վերսկսվում). Ինչու: Դե, այնպես էլ մուտքի գործընթացը եւ բաշը փոխարինված են getty եւ ժառանգության համար
* Տեքստային տերմինալը ինչպես ինդեքսին
ազդանշանային կապերը հաստատում են նախորդների կողմից: Փաստորեն, եթե դիտարկեք մանրամասները, դուք կտեսնեք, որ փոխարինման գործընթացը կունենա նույն պրոցեսը նույնականացման գործընթացը: Այսպիսով, bash- ը նույն ձեւով նույնականացման համարով քողարկված է: Եթե bash- ը սպանվի, նույնքան նմանվում է գետիին (թեեւ getty- ն այլեւս չի աշխատում): Սա հանգեցնում է հեթանոսության:
Երբ մեկը դուրս է գալիս, այդ սերիալ պորտի բոլոր գործընթացները սպանվում են, այդ թվում `bash- ն: Դա կարող է նաեւ տեղի ունենալ (եթե միացված լինի), եթե սեղմված ազդանշանը ուղարկվի սերիական պորտին, DCD լարման կաթիլով մոդեմով: Կամ DCD- ի դուրս գալը կամ թողնելը կհանգեցնի getty respawning- ի: Մեկը կարող է ստիպել ստանալու պատասխանել `ձեռքով սպանելով bash (կամ մուտքի) միջոցով` կոճակին հարվածելով եւ այլն, իսկ «վերեւում» կամ «սպանել» հրամանով: Դուք, ամենայն հավանականությամբ, պետք է սպանեք այն ազդանշանով 9 (ինչը չի կարող անտեսվել):
Եթե getty վարում հրամանի տողում. Ծրագրերը դադարում են
Անհրաժեշտ է սովորաբար getty / etc / inittab- ի ներսում եւ ոչ թե հրամանի տողում, կամ տերմինալում գործող որոշ ծրագրեր կարող են անսպասելիորեն կասեցնել (դադարեցվել): Ահա թե ինչու (անցնել հաջորդ բաժին, եթե ինչու ձեզ համար կարեւոր չէ): Եթե դուք սկսեք ստանալ ttyS1- ը մեկ այլ տերմինալի հրամանի տողից, ասեք tty1- ը, ապա այն կունենա tty1 որպես իր «հսկիչ տերմինալը», չնայած այն փաստացի տերմինալը, որը գործում է, ttyS1 է: Այսպիսով, այն ունի սխալ վերահսկիչ տերմինալ: Բայց եթե inittab- ի ֆայլը սկսեց, ապա ttyS1- ը կունենա որպես վերահսկման տերմինալ (ճիշտ):
Չնայած վերահսկման տերմինը սխալ է, ttyS1- ի մուտքն աշխատում է տուգանքով (քանի որ դուք տրված եք ttyS1- ի որպես getty- ի փաստարկ): Ստանդարտ մուտքագրումը եւ արտադրանքը սահմանվում են ttyS1- ին, չնայած որ հսկիչ տերմինը մնում է tty11: TtyS1- ում գործող այլ ծրագրեր կարող են ժառանգել այս ստանդարտ մուտքագրումը / ելքը (որը կապված է ttyS1- ին) եւ ամեն ինչ լավ է: Սակայն որոշ ծրագրեր կարող են սխալվել, փորձելով կարդալ իրենց հսկիչ տերմինալից (tty1), ինչը սխալ է: Այժմ tty1- ը կարող է մտածել, որ այս ծրագրերը ֆտորում են tty1- ով, ուստի tty1- ից կարդալու փորձը (այն պետք է լինի ttyS1) հանգեցնում է կարդալու գործընթացը դադարեցնելու: (Ֆոնային գործընթացը թույլ չի տալիս կարդալ իր հսկիչ տերմինալը): Դուք կարող եք տեսնել մի հաղորդագրություն, որը նման է «Էկրանի վրա [1] + Stopped »: Այս պահին դուք խրված եք, քանի որ չես կարող փոխազդել մի գործընթացի հետ, որը փորձում է շփվել ձեզ հետ սխալ տերմինով: Իհարկե, այս փախուստը կարող եք մեկ այլ տերմինալ գնալ եւ սպանել գործընթացը եւ այլն:
agetty (կարող է անվանվել getty)
Օրինակ / etc / inittab- ի օրինակ գիծ:
S1: 23: respawn: / sbin / getty -L 19200 ttyS1 vt102S1- ը ttyS1- ից է: 23-ը նշանակում է, որ getty- ն ընթանում է 2-րդ կամ 3-րդ մակարդակներում մուտք գործելուց հետո: respawn- ը նշանակում է, որ եթե getty- ն (կամ այն փոխարինեց այն, ինչպիսին օրինակ bash- ը) սպանվի, getty- ը ինքնաբերաբար կսկսի նորից (respawn): / sbin / getty է getty հրաման. -L- ը նշանակում է տեղական (անտեսել մոդեմի կառավարման ազդանշանները): -h (օրինակով չի ցուցադրվում) թույլ է տալիս սարքավորման հոսքի հսկողությունը (նույնը, ինչպես stty crtscts): 19200 թթ. ttyS1 նշանակում է / dev / ttyS1 (COM2 MS-DOS- ում): vt102 տերմինալի տեսակը է, եւ այս getty- ը սահմանելու է շրջակա միջավայրի փոփոխական TERM- ը այս արժեքի համար: Կոդավորման ֆայլեր չկան: Մուտքագրեք «init q» հրամանի տողում գետի խմբագրումից հետո եւ դուք պետք է տեսնեք մուտքի հուշում:
Agetty & # 39; s ավտոմատ հայտնաբերում է հավասարության խնդիրները
The agetty ծրագիրը կփորձի ավտոմատ կերպով հայտնաբերել տերմինալի ներսում սահմանված հավասարությունը (ներառյալ ոչ մի հավասարություն): Այն չի ապահովում 8-bit տվյալների բայթ եւ գումարած 1-բիթանոց հավասարություն: Տես 8-bit տվյալների բայթ (գումարած հավասարություն): Եթե դուք օգտագործում եք ծայրահեղություն սահմանելու համար, ապա agetty- ը ինքնաբերաբար կհեռացնի այն, քանի որ ի սկզբանե ցանկանում է, որ հավասարակշռությունը հասնի, քանի որ դա տվյալների բիթ է: Դա այն է, որ այն պետք է ստանա վերջին տիտղոսը (հնարավոր է հավասարության հավասարություն), երբ մուտքագրեք ձեր մուտքի անունը, որպեսզի կարողանա ավտոմատ կերպով բացահայտել հավասարակշռությունը: Այսպիսով, եթե օգտագործեք հավասարակշռությունը, միացրեք այն միայն տեքստային տերմինի ներսում եւ թույլ տվեք, որ այն ավտոմատ կերպով հայտնաբերի եւ դրեց այն համակարգչում: Եթե ձեր տերմինալը սատարում է ստացված հավասարությունը, ապա մուտքի հուշումը կտտանքվի, մինչեւ որեւէ բան գրեք, որպեսզի getty- ը կարողանա հայտնաբերել
հավասարություն: Վտանգված հուշումը կբացահայտի այցելուներին եւ այլն եւ փորձում մուտք գործել: Դա կարող է լինել միայն այն, ինչ ուզում եք:
Երբեմն կա հավանականության ավտո հայտնաբերման խնդիր: Դա տեղի է ունենում այն բանի համար, որ առաջին անգամ մուտքագրելով ձեր մուտքի անունը, agetty- ը սկսում է մուտք գործել ծրագիրը, ավարտելու համար մուտքագրումը: Ցավոք, մուտքի ծրագիրը չի կարող հավասարություն գտնել, որպեսզի եթե getty ծրագիրը չհաջողվի որոշել հավասարակշռությունը, ապա մուտք գործելը չի կարողանա որոշել դա էլ է: Եթե առաջին մուտքի փորձը ձախողվի, մուտքի թույլտվությունը կրկին փորձեք, եւ այլն (բոլորը հավասարության սկզբունքով սահմանված են): Ի վերջո, մի շարք անհաջող փորձերից հետո մուտք գործելու (կամ ժամանակի ավարտից հետո) սկսում են նորից սկսել եւ նորից սկսել մուտքի հաջորդականությունները: Երբ getty նորից վազում է, այն կարող է իմանալ հավասարությունը երկրորդ փորձել, որպեսզի ամեն ինչ կարող է աշխատել OK.
Անօրինական հավասարության դեպքում մուտքի ծրագիրը չի կարող ճիշտ կարդալ այն, ինչ մուտքագրում եք, եւ չեք կարող մուտք գործել: Եթե ձեր տերմինալը սատարում է ստացված հավասարությունը, կշարունակեք տեսնել աղավաղված էկրան: Եթե getty- ը չհաջողվի բացահայտել հավասարակշռությունը, ապա / etc / issue ֆայլը սովորաբար հափշտակված է մինչեւ էկրանին, այնպես որ էկրանին կարող է հայտնվել ավելի խեղաթյուրված բառերը:
Ինչու չհաջողվեց հասկանալ հավասարությունը տպագրված առաջին տառով: Ահա մի օրինակ. Ենթադրենք, այն հայտնաբերում է 8 բիտ բայտ իր հավասարության բիթով 0 (բարձր կարգի բիտ) եւ տարօրինակ թվով 1 բիթ: Ինչ հավասարություն է սա: Դե, տարօրինակ թվով 1 բիթը ենթադրում է, որ դա տարօրինակ հավասարություն է: Բայց դա կարող էր նաեւ լինել միայն 8-բիթ `առանց հավասարության: Առայժմ ոչ մի կերպ չկա որոշելու: Սակայն մինչ օրս մենք վերացրեցինք հավասարության հավանականությունը: Հավասարության հայտնաբերումը դրանով կախված է վերացման գործընթացից:
Եթե հաջորդ բայթը տպագրված է առաջինին, եւ միայն վերացնում է նույնիսկ հավասարության հնարավորությունը, ապա հավանականությունը որոշելու հավանականությունը դեռեւս անհնար է: Այս իրավիճակը կարող է անորոշ ժամանակով շարունակվել, եւ հազվադեպ դեպքերում մուտքի հնարավորությունը չի հաջողվի, մինչեւ դուք փոխեք ձեր մուտքի անունը: Եթե agetty գտնում է 1 հավասարության բիթ, ապա ենթադրվում է, որ դա հավասարության բիտ է եւ ոչ թե 8-բիթանոց բնույթ: Այսպիսով, ենթադրվում է, որ ձեր օգտագործողի անունից չեք օգտագործում մետա-նիշ (բարձր բիտ կոդ) (այսինքն, ձեր անունը ASCII- ում է):
Մեկը կարող է մուտք ունենալ «մուտքի հանգույց» տարբեր ձեւերով: Ենթադրենք, դուք մուտք եք գործում միայն մեկ նամակ կամ երկու ձեր մուտքի անվանման համար, ապա հարվածեք վերադարձին: Եթե այդ տառերը բավարար չեն հավասարակշռության հայտնաբերման համար, ապա մուտքն անցնում է, մինչեւ հավասարակշռությունը հայտնաբերվի: Երբեմն այս խնդիրը տեղի է ունենում, եթե դուք չունեք տերմինալը եւ / կամ միացված, երբ սկսում է սկսվել:
Եթե դուք խրված եք այս «մուտքի հանգույցում», ելքից դուրս գալու համար մի քանի անգամ հարվածել վերադարձի ստեղնը, քանի դեռ դուք ստանում եք getty մուտքի հուշում: Մեկ այլ եղանակ է, պարզապես մի րոպե սպասել, որ տեւական ժամանակահատված լինի: Այնուհետեւ, getty մուտքի հուշումը էկրանին կցուցադրվի getty ծրագրի կողմից եւ կարող եք կրկին փորձել մուտք գործել:
8-bit տվյալների բայթ (գումարած հավասարություն)
Ցավոք, ագրետին չի կարող բացահայտել այդ հավասարակշռությունը: 1999-ի վերջի դրությամբ այն չունի տարբերակ `ավտոմատ կերպով հայտնաբերելու հավասարակշռությունը եւ այդպիսով կբացահայտի սխալ հավասարություն: Արդյունքն այն է, որ մուտքի գործընթացը կխախտվի եւ հավասարությունը կկատարվի սխալ: Այսպիսով, հավանականությունը կարծես հավանական չէ փորձել օգտագործել 8-bit տվյալների բայտներ հավասարությամբ:
Getty (getty_ps- ի մի մասը)
(Այս ամենը Greg Hankins- ի հին Serial-HOWTO- ից է)
Այս գայթակղիչի համար անհրաժեշտ է մուտքագրել մուտքերի կոնֆիգուրացիայի ֆայլ եւ մուտքագրել / etc / inittab- ում : Ահա մի քանի օրինակ գրառումներ, որոնք կօգտագործեն ձեր տերմինալի համար, որը դուք տեղադրեք կազմաձեւման ֆայլ / etc / gettydefs :
Նշենք, որ DT38400, DT19200 եւ այլն պարզապես պիտակներ են եւ պետք է լինեն նույնը, որ դուք օգտագործում եք / etc / inittab- ում :
Եթե ցանկանում եք, ապա դուք կարող եք տպել հետաքրքիր բաներ մուտքի դրոշի ներքո: Իմ օրինակում ես ունեմ համակարգային անուն եւ տպագրված սերիան: Դուք կարող եք ավելացնել այլ բաներ. [Blockquote
ստվեր = այո] @ Բ ընթացիկ (գնահատվում է այն ժամանակ, երբ @ b- ը դիտվում է) bps դրույքաչափով: @ D Ընթացիկ ամսաթիվը, MM / DD / YY- ում: @ L Սերիալ տողը, որի համար getty կցված է: @ Ս համակարգի անունը: @ Տ ընթացիկ ժամանակաշրջանը `Հ.Հ.-ում` SS (24 ժամ): @U Ներկայումս գրանցված օգտագործողների թիվը: Սա / etc / utmp ֆայլում գրանցված գրառումների թվաքանակն է, որը չունի ոչ null ut_name դաշտ: @V VERSION- ի արժեքը, ինչպես նշված է կանխադրված ֆայլում: Մեկ «@» նշանի ցուցադրելու համար օգտագործեք կամ '\ @' կամ '@@':Երբ եք արել խմբագրումը / etc / gettydefs , կարող եք հաստատել, որ շարահյուսությունը ճիշտ է անում.
linux # getty -c / etc / gettydefsՀամոզվեք, որ չկա այլ getty կամ uugetty config ֆայլը սերիական պորտի համար, որը ձեր տերմինը կցված է, ինչպիսիք են ( /etc/default/{uu}getty.ttyS N կամ /etc/conf.{uu}getty.ttyS N ) , քանի որ դա, ամենայն հավանականությամբ, խանգարում է տերմինալում աշխատելու համար: Հեռացնել նման ծագող ֆայլերը, եթե դրանք դուրս են գալիս:
Խմբագրել ձեր / etc / inittab ֆայլը սերիական պորտում աշխատելու համար (փոխարինեք ձեր միջավայրի համար ճիշտ տեղեկատվությամբ `պորտ, արագություն եւ կանխադրված տերմինալ տիպ):
S1: 23: respawn: / sbin / getty ttyS1 DT9600 vt100 init linux # init qԱյս պահին, դուք պետք է մուտք գործեք ձեր տերմինալը: Կարող եք ստիպված լինել վերադառնալ, որպեսզի ստանաք տերմինալի ուշադրությունը:
mgetty
«Մ» -ը մոդեմն է: Այս ծրագիրը հիմնականում մոդեմների համար է եւ 2000 թ. Կեսերին այն կպահանջի վերանայել տեքստային տերմինալների համար օգտագործելու համար (եթե դուք օգտագործում եք ապարատային հոսքի հսկողություն, եւ սովորաբար պահանջում է ձեռքի մալուխ): Ուղղակի կապված տերմինալների փաստաթղթերի համար տես ձեռնարկի «Ուղղակի» բաժինը ` mgetty.texi:
Նայեք վերջին տողում /etc/mgetty/mgetty.config տերմինալի համար կարգավորելու համար: Եթե դուք չեք ասում, «անցնել-DTR- ը» չի գտնի, որ դուք ունեք մոդեմ եւ կաթիլ (բացասական) DTR pin- ը PC- ում `գոյություն չունեցող մոդեմը վերականգնելու փորձ: Ի տարբերություն այլ gettys- ի, mgetty չի տալու իրեն տերմինալ մինչեւ որեւէ մեկը հարվածում է որեւէ բանալին այդ տերմինալի, որպեսզի դուք կտեսնեք a? տերմինալի համար վերեւում կամ ps, մինչեւ դա տեղի ունենա: / Var / log / mgetty / տեղեկամատյանները կարող են ցույց տալ մի քանի զգուշացնող հաղորդագրություններ, որոնք կիրառելի են միայն մոդեմների համար, որոնք դուք կարող եք անտեսել:
Ահա / etc / inittab- ում տեղադրված պարզ տողի օրինակ :
s1: 23: respawn: / sbin / mgetty -r ttyS1