Linux боюнча Text-терминалдар

14.1 Гетти (/ ж.б. / inittab пайдаланылган)

Гетти киришүү

компьютер (же көлөмүн Нускасы өчүргүчтөрүн) чыгып баштаганда бир сериал порту боюнча кирүү иштеп чыктым үчүн (жана терминалына ага байланышкан) бир гетти буйрук / ж.б. / inittab делосуна салып коюш керек. буйрук сабында Джети Running көйгөйлөр (: эмне үчүн программалар көрүп калат гетти буйрук сабында Нускасы Эгерде карагыла) алып келиши мүмкүн. Getty бир Телетайп үйлөнөт (терминалдык) жаткан. Ар бир терминал өз гетти буйрук керек. чыгуучунун сайын / ж.б. / inittab билэ үчүн, жок эле дегенде, бир гетти буйругу да бар. Бул табуу жана аны кийинки чыныгы терминалдары үчүн гетти буйруктарын койду. Бул эмне үчүн зарыл болгон нерселердин баары аларга комментарийлерди экенин (жетектөөчү # жок) да комментарийлеп жатышат текст терминалдары үчүн үлгү гетти саптар бар жана бир нече жүйөлөрдү өзгөрүшү мүмкүн.

уруксат аргументтер сиз колдоно турган гетти көз каранды:
түздөн-түз байланышкан терминалдары үчүн мыкты эки gettys болуп төмөнкүлөр саналат:

Эки gettys терүү-жылы модемдер мыкты (түздөн-түз байланышкан терминалдары үчүн качуу) болуп төмөнкүлөр саналат:

Эгер чыныгы текст-терминал кереги жок болсо, Simple gettys пайдалануу. Көпчүлүк Linux колдонуучулары өздөрүнүн Монитордун бул бир колдонуу:

Сиздин Linux бөлүштүрүү текст-терминалдары үчүн ps_getty же agetty менен да пайда болот. Кээ бир таралуусу да камсыз. Тилекке каршы, алар көп учурда сиз / ага коюлган ж.б. далилдер бери / айырмаланат inittab бар кайсы бир аныктап алышыбыз керек, ошондо гана "гетти" деп да атайбыз. Debian (ларды эсепке-Linux пакетте) agetty колдонот. Redhat жана Fedora турат ps_getty колдонулат: ps_getty

Сен бар Гетти аныктоо аракет акыркы каражат катары, анын Аткаруучу коду (адатта / sbin ичинде) текшерип мүмкүн. ps_getty Ушул Кодексте камтылган / ж.б. / gettydefs жазыла элек. Аны издөө үчүн, / sbin жана түрү бар:
саптар гетти | талаасынын Гетти
гетти agetty иш жүзүндө болсо, анда жогоруда айтылган нерсе алып келет. Бирок, эгерде сиз agetty терүүнү бар:
гетти -h
ыкмаларды [-hiLmw] керек.

Сиз Гетти жок болсо, сиз башка таркатууну RPM жана Debian пакеттерди ортосунда динине жат программасын текшерип келет. булак коду Гетти Программаны көчүрүп алууга мүмкүн.

сен (3 дирижёрдун минималдуу санын сиз гана колдонуп, мисалы: жеткирүү, кабыл алуу, жана жалпы белги жер) модем башкаруу линияларын колдонуу менен эмес, анда сиз гетти бир "жергиликтүү" желегин колдонуп, бул жөнүндө билбей эле койсун керек. Бул формат сиз колдоно турган гетти көз каранды.

Getty кирүүдө кийин чыгып (жана respawn болот)

Сиз гетти жараяны мындан ары иштеп жатат деп ( "жогорку", "Заб -АКС", же "ptree" колдонуу менен) байкап калат журналы кийин. ага эмне болгон? Сиздин номиналдык өлтүрүлгөн болсо эмне үчүн гетти кайра өчүрүп жатат? Бул жерде эмне үчүн.

Сиздин колдонуучу аты менен терип алгандан кийин, гетти, аны алып, аны пайдалануучунун өзүнүн атын айтып логин программасын чакырат. гетти жараяны кирүү ыкма менен алмаштырылган. кирүү жараяны Сырсөздү, аны менен башталат текшерет кандай жараян сураса сөздү ишинде көрсөтүлгөн. Бул жараян көп Баш катмар болуп саналат. Эгер ошондой болсо, Баш башталат жана кирүү жараянын алмаштырат. бир жараян дагы бир орду жана Баш номиналдык жараяны башында гетти жараян катары баштаган кетсек. Мунун кесепеттери төмөндө токтолобуз.

Азыр / ж.б. / inittab кезекте, гетти respawn (кайра) деп эсептелген каза болсо. Бул Гетти чакырат сабына ошондой дейт. Ал эми Баш кабыгы (же кирүү иши) өлтүрүлгөн, гетти respawns (жумада) болсо. Неге? Мисалы, кирүү тартиби жана баш да гетти жана мурастагыла ордуна бар

* Text Терминал Кантип үчүн индекси

белги байланыштар алардын мурдагы белгиленген. Эгер маалымат сактаса, Чындыгында, алмаштыруу тартиби оригинал жүрүшүндө, ошондой эле технологиялык ID бар экенин байкайт. Ошентип, Баш ошол жараян ID номери менен кийип Гетти саналат. Баш Гетти өлтүрүлгөн эле окшош каза болсо (гетти ары качып жок болсо да). Бул гетти respawning келет.

бир кезде, ошол чиркеген порт бардык жараяндар Баш катмары, анын ичинде каза болду. Бул ошондой эле болот (эгерде иштетилген) бир hangup белги модем менен DCD кубатуулуктагы бир тамчы менен сериялык портуна жиберилет, анда мүмкүн. Же DCD менен чыгуу же төмөндөшү гетти respawning алып келет. Бир кол менен Баш (же кирүүдө) өлтүрөм деп же к баскычын басып, ж.б., ал эми "жогору" же "өлтүрүү" буйругу менен уруп respawn үчүн Джети мажбур болушу мүмкүн. Балким, белги 9 (четке мүмкүн эмес), аны өлтүрүү үчүн керек болот.

Эгерде гетти буйрук сабында Нускасы: программалары калат

Адатта ички / ж.б. / inittab жана терминалга чуркап буйрук сабында же башка кээ бир программаларды эмес, Джети чуркап керек күтүүсүздөн токтотулду (токтотулган) болушу мүмкүн. Бул жерде эмне үчүн (эмне үчүн маанилүү эмес болсо, кийинки бөлүмгө аттатып) болот. башка терминалынын буйрук сабында деп ttyS1 үчүн Гетти баштаганда, tty1, анда ал tty1 анын "көзөмөлдөөчү терминалы" иш жүзүндө терминал да ал ttyS1 болуп иштейт болот деп. Ошентип, бул туура эмес, контролдоочу терминал бар. ал inittab делосуна ичинде баштаган болсо, анда ал контролдук терминалынын (туура) катары ttyS1 болот эми.

контролдоочу терминалы туура эмес болсо да, ttyS1 боюнча кирүү жакшы иштейт (сиз Гетти үчүн аргумент катары ttyS1 берген-жылдан бери). стандартты киргизүү жана чыгаруу контролдук терминал tty11 бойдон калууда да ttyS1 коюлган. ttyS1 көздөй чуркап башка программалар бул стандарттык Input / Output (ttyS1 менен байланышкан) жана баары жакшы болот мураска алат. Бирок, кээ бир программалар боюнча туура эмес, аларды башкара терминал (tty1) окуп узартабыз деп аракет кылышы мүмкүн. Азыр tty1 бул программалар tty1 окуп үчүн tty1 менен аракет алкагында чуркап жатат (ал ttyS1 болушу керек) окууга аракет кылган ишин токтотууда натыйжасы деп ойлошу мүмкүн. (A маалымат жараяны контролдук терминалына окуп жол берилбейт.). Сен сыяктуу бир кабар бир нерсени көрө алат: Экранда "[1] + калдым". Бул жерде сиз туура эмес төлөм терминалы аркылуу сиз менен байланышуу үчүн аракет кылып жаткан жол менен өз ара эмес, бери тыгылып жатат. Бул качып, албетте, башка терминалына барып, жараянын өлтүрүп алат, ж.б.

agetty (гетти деген болушу мүмкүн)

/ Ж.б. / inittab бир мисал сап:

S1: 23: respawn: / sbin / Getty -L 19200 ttyS1 vt102

S1 ttyS1 болот. 23 гетти Нускасы баскычтарында 2 же 3 respawn киргенде чуркап болсо гетти (же, мисалы, баш катары ордуна жараяны) өлтүрүлгөн деп билдирет, гетти түрдө (respawn) кайра башталат дегенди билдирет. / Sbin / Getty гетти команда болуп саналат. -L (модем контролдоо сигналдарды бурбай) Жергиликтүү билдирет. -h (мисалы көрсөтүлгөн эмес) аппараттык агымы контролдук (stty crtscts сыяктуу эле) берет. 19200 бирдиги болуп саналат. ttyS1 / иштеп чыгуучунун / ttyS1 (MS-DOS жана Com2) дегенди билдирет. vt102 терминалынын түрү болуп саналат жана бул маанисине өзгөрүлмө мөөнөттө ушул гетти шарттарды орнотот. эч кандай тарам Files бар. Джети түзөтүү кийин буйрук сабында "ЖМТИ Q" терип, сиз кирүү туруу көрүшү керек.

Agetty & # 39; с паритеттик маселелерди түрдө аныктоо

Agetty программасы терминалы (анын ичинде эч кандай паритет) ичинде белгиленген паритети түрдө аныктоо үчүн аракет кылат. Ал 8-биттик маалыматтар байт плюс 1-бит паритети колдоого албайт. 8-бит маалымат байт (плюс паритети) карагыла. Сиз паритети коюуга stty колдоно турган болсо, agetty паритети бит башында каалайт бери жазуусу коюлбаса, ал маалымат аз болсо, банк келе берет. Бул паритети түрдө аныктоо мүмкүн, ошондуктан сиздин логин-атты эле акыркы аз (балким паритеттик бит) алуу керек болот. Ошентип, сен паритети колдонгон болсо, текст-терминалдык ичинде гана, аны күйгүзүп, аны agetty түрдө аныктоо жол менен отуруп, аны белгиленген. Сиздин терминалы алган паритети колдогон болсо, ошол гетти аныктоо үчүн бир нерсени терип чейин кирүү тез чыкса болот

паритети. чыкса тез көрүшүп, кирүүгө аракет ж.б. тоскоолдук кылат. Бул сиз каалаган кандай гана болушу мүмкүн.

паритетин унаам аныктоосунда маселе кээде бар. Бул биринчи Кирүү аты, agetty сени кирип, аягына чейин кирүү программасын баштайт терип алгандан кийин, себеби болот. Тилекке каршы, кирүү программасы болсо гетти программа паритети кирүү аныктоо үчүн ишке ашкан жок, ошондуктан паритети аныктоого мүмкүн эмес аныктай албай калат ал да. Эгерде биринчи кирүү аракети ишке ашпаса, логин кайра ж.б. (туура эмес коюлган паритет менен) аракет кылат. Акыр-аягы, ийгиликсиз аракеттерден кирүү үчүн (же күтүү кийин) бир катар кийин agetty кайрадан башталат жана кайра кирүү тизилишин баштайт. гетти кайрадан иштеп жаткан болсо, анда баары андан кийин OK иштеши мүмкүн, ошондуктан экинчи аракет боюнча паритети аныктоо мүмкүн.

Туура эмес паритет менен кирүү программасы туура сиз эмне менен кире албайт окуй албайт. Сенин терминалы паритети алган болсо, сиз чыкса экранды көрө берет. гетти паритети аныктай албаса, анда бир / ж.б. / чыгарылган билэ, адатта, экрандын алдында алдында тез, абдан көп чыкса сөзү экранда пайда мүмкүн көмүлүп салынууда.

Эмне үчүн agetty биринчи кат аркылуу паритети аныктоого мүмкүн эмес терилген? Мисал: анын паритеттик бит 0 менен (жогорку даражадагы аз) жана 1-бит ичинен так санда менен 8-биттик Байт аныктаса дейли. Эмне паритеттик болот? Алсак, 1-бөлүктөрүнүн так саны так паритеттик экенин билдирет. Бирок ал да жок паритет менен 8-биттик белгиси болушу мүмкүн. жол жок чейин аныктоо бар. Ал эми бүгүнкү күнгө чейин биз да, паритет мүмкүнчүлүгүн жойгон жок. паритет аныктоо Ошентип, жоюу жол-жобосуна менен киришет.

терилген кийинки байт Эгерде биринчи окшош болуп саналат жана ошондой эле бир гана тургай паритет мүмкүнчүлүгү жок, ал паритети аныктоого да мүмкүн эмес. Мындай жагдай түбөлүккө жана сейрек учурларда кирүү уланта аласыз сиздин логин-атын өзгөртүүгө чейин эч майнап чыкпайт. agetty 1 паритеттүү аз тапса, анда ал бул паритеттик аз эмес, 8-биттик мүнөздөгү жогорку тартип аз болот деп ойлошу мүмкүн. Демек, сиз колдонуучу аты (аты ASCII турат башкача айтканда,) менен мета-белгилер (жогорку бит топтому) колдонууга болбойт деп ойлойт.

Бир ар кандай жолдор менен бир "кирүү укурук" кире алат. гана Кирүү ысымы үчүн бир кат же эки терип, андан кийин уруп кайтып дейли. Бул тамгалар паритеттик аныктоо үчүн жетиштүү болуп саналбаса, анда паритеттик табылды алдында чуркап кирип. Кээде agetty биринчи баштаганда бул маселе сиз терминал жок болсо болот жана / же байланышкан.

Эгер бул "кирүү айлантып," ал бир жол менен тыгылып калса, сиз гетти кирүү туруу алууга чейин кайтып негизги бир нече жолу сокку болуп саналат. Дагы бир жолу гана күтүү үчүн, бир нече мүнөт да күтүп турат. Анан гетти кирүү тезинен гетти программасы менен экранда салып берет да, сен кирип кайра аракет кылышы мүмкүн болот.

8-бит маалымат байт (плюс паритети)

Тилекке каршы, бул agetty паритети аныктоого мүмкүн эмес. 1999-жылдын бул паритетин унаам-аныктоону өчүрүү жана натыйжада туура эмес паритети аныктоо үчүн эч кандай акысы бар. Натыйжада кирүү жараяны чыкса жана паритеттик туура эмес коюп, калат экен. Ошентип, ал паритет менен 8-бит маалымат байт колдонууга аракет мүмкүн эмес.

Гетти (getty_ps бир бөлүгү)

(Бул көпчүлүгү Грег Алик тарабынан эски Serial-HOWTO чейин)
Бул Гетти бир тарам делосуна жазууларды салып / ж.б. / inittab бир жазууну кошуу үчүн да керек. Бул жерде кээ бир мисал жазууларда силердин терминалы сиз тарам делосуна салып пайдалануу үчүн / ж.б. / gettydefs болуп саналат.

# 38400 BPS Dumb Терминал материалдар DT38400 # B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL # @ S @L кирүү: # DT38400 # 19200 BPS Dumb Терминал материалдар DT19200 # B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL # @ S @L кирүү: # DT19200 # 9600 BPS Dumb Терминал материалдар DT9600 # B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL # @ S @L логинин: # DT9600

DT38400 Белгилей кетсек, DT19200 ж.б. эле бренда жана / ж.б. / inittab колдонуу үчүн бирдей болууга тийиш.

Сиз каалаган болсо, гетти кирүү баннерде кызыктуу нерселерди басып алат. Менин мисалдарды, мен система атын жана басылган сериялык сызык бар. Сиз башка нерселерди кошууга болот: [Blockquote

көлөкө = ооба] @B учурдагы (@B көрүнүп турат учурда баа) чен BPS. @D учурдагы күн, мм / DD / YY. @L кайсы гетти үчүн сериялык линиясын тиркелет. @S системасы аты. @T Азыркы учурда, анын ичинде HH: MM: SS (24 саат). @U учурда колдонуучулардын боюнча кол саны. Бул бир эмес күчүн ut_name талаасы бар / ж.б. / utmp делосуна жазуулардын катар саны болуп саналат. @V Демейки делосуна көрсөтүлгөн VERSION наркы. Бир өзгөрүүлөр "@" мүнөзүн, пайдаланууга же "\ @" же "@@".

Сиз / ж.б. / gettydefs түзөтүп бүткөндөн кийин, синтаксистик кылып, туура же туура эмес экендигин текшерүүгө болот:

Linux # гетти е / ж.б. / gettydefs

Текшерип сиздин терминал, мисалы, (/etc/default/{uu}getty.ttyS N же /etc/conf.{uu}getty.ttyS N) катары тиркелет сериал порту үчүн эч кандай башка гетти же uugetty тарам билэ бар ушул сыяктуу эле, балким, бир терминалга Джети чуркап тоскоол болот. Алар чыгып, анда мындай карама-каршы документ алып салуу.

Түзөтүү сиздин / ж.б. / inittab билэни сериал порту (сенин айлана-чөйрөнү туура маалымат алмаштыруучу - порт, ылдамдыгы жана демейки терминал тиби) жөнүндөгү Getty иштетүү үчүн:

S1: 23: respawn: / sbin / Getty ttyS1 DT9600 vt100 ичинде Linux # ЖМТИ С

Бул жерде сиздин терминалга логин туруу көрүшү керек. Сиз Терминал буруу үчүн кайтып оозго болушу мүмкүн.

mgetty

"М" модем чечмеленет. Бул программа модемдер үчүн, биринчи кезекте, жана орто 2000-жылдын бул текст-терминалдардын үчүн колдонууга recompiling талап кылынат (сиз аппараттык агымы көзөмөлгө колдонуу Жинди деп, адатта, кол менен жасалган кабелин талап кылбаса). Түздөн-түз байланышкан терминалдары үчүн документтештирүү үчүн окуу куралынын "Түздөн-түз" бөлүмүн карагыла: mgetty.texi.

Бир терминалы, аны орнотууга бир мисалы /etc/mgetty/mgetty.config акыркы линияларын карагыла. деп башкача каралбаса, "жок-dtr которгуч" Эгер жокко модемди тазалоо үчүн курулай аракет ЖК бир модем жана ыргытуу (жокко) DTR пин бар деп ойлошот. башка gettys айырмаланып, mgetty кимдир бирөө сага көрөсүз ошол терминалын каалаган баскычты сүзөт чейин терминалына өзү тиркөө жок болот? бул чейин жогору же Заб терминалына үчүн болот. / Курстар менен журналдар / / mgetty / сен этибарга модемдер гана тиешелүү бир нече эскертүү билдирүүлөрдү мүмкүн журналы.

Бул жерде жөнөкөй сызыктын мисалы сен салып жатат / ж.б. / inittab:

s1: 23: respawn: / sbin / mgetty -r ttyS1