Text-тэрміналы на Linux

14.1 Геці (выкарыстоўваецца ў / і г.д. / inittab)

Ўвядзенне ў Геці

Для таго, каб працэс Увайсці працаваць на паслядоўны порт (і тэрмінала, падлучанага да яго) пры запуску кампутара (або перамыкачы запуску узроўняў) каманда Геці павінен быць уведзены ў і г.д. / inittab файл /. Запуск Геці з каманднага радка можа выклікаць праблемы (гл Калі Геці запусціць з каманднага радка: Праграмы спыняюць, каб зразумець, чаму). Геці атрымлівае TTY (тэрмінал) збіраецца. Кожны тэрмінал мае патрэбу ў сваёй уласнай каманды Геці. Існуе таксама па крайняй меры адна каманда Геці для кансолі ў кожным / і г.д. / inittab файл. Знайсці гэта і змясціць каманды Геці для рэальных тэрміналаў побач з ёй. Гэты файл можа ўтрымліваць прыклады Геці лініі для тэкставых тэрміналаў, якія каментавалі так, што ўсё, што вам трэба зрабіць, гэта раскаментаваць іх (прыбраць вядучы #) і змяніць некалькі аргументаў.

Аргументы, якія дазволеныя, залежаць ад Геці вы карыстаецеся:
Два Gettys лепшы для непасрэдна падлучаных тэрміналаў:

Два Gettys лепшыя для камутаваных мадэмаў (у пазбяганне для непасрэдна падлучаных тэрміналаў), з'яўляюцца:

Просты Gettys выкарыстоўваць, калі вы не выкарыстоўваеце рэальны тэкст-тэрмінал. Большасць карыстальнікаў Linux выкарыстоўваюць адзін з іх на сваім маніторы:

Ваш дыстрыбутыў Linux можа прыйсці з любым ps_getty або agetty для тэкставых тэрміналаў. Некаторыя дыстрыбутывы пастаўляюць ні. На жаль, яны часта проста называюць яго «Геці», таму вам можа спатрэбіцца, каб вызначыць, які ў вас ёсць, так як аргументы вы паклалі пасля яго ў / і г.д. / inittab адрозніваюцца. Debian выкарыстоўвае agetty (у пакеце Util-Linux). RedHat і Fedora выкарыстоўваецца ps_getty, які па адрасе: ps_getty

У крайнім выпадку, каб паспрабаваць вызначыць, які Геці ў вас ёсць, вы можаце праверыць свой выкананы код (звычайна ў / SBIN). ps_getty мае / і г.д. / gettydefs укаранёны ў гэтым кодзе. Каб знайсці яго, перайдзіце ў каталог / SBIN і тыпу:
радкі Геці | Grep Геці
Калі Геці на самай справе agetty вышэй прывядзе да нічога. Аднак калі ў вас ёсць agetty друкаваць:
Геці -h
павінны паказаць параметры [-hiLmw].

Калі ў вас няма Геці вы хочаце праверыць іншыя дыстрыбутывы і чужародную праграму для пераўтварэння паміж RPM і пакетамі Debian. Зыходны код можна загрузіць з Геці праграмнага забеспячэння.

Калі вы не выкарыстоўваеце кіраўнікі лініі мадэма (напрыклад, калі вы выкарыстоўваеце толькі мінімальны лік 3 правадыроў: перадаваць, атрымліваць і зямлю), то вы павінны дазволіць Геці ведаць гэта, выкарыстоўваючы «мясцовы» сцяг. Фармат гэтага залежыць ад таго, Геці вы выкарыстоўваеце.

Геці выходзіць пасля ўваходу ў сістэму (і можа адродзіцца)

Пасля таго, як вы увайсці, вы заўважыце (з дапамогай «зверху», «пс -ax», або «Ptree»), што працэс гета ўжо не працуе. Што з ім здарылася? Чаму Геці перазапусціць зноў, калі ваша абалонка будзе забіты? Вось чаму.

Пасля ўводу імя карыстальніка, Геці прымае яго і выклікае праграму ўваходу ў сістэму, кажучы гэта ваша імя карыстальніка. Працэс Геці замяняецца працэсам ўваходу ў сістэму. Працэс Лагін запытвае пароль, правярае яго і пачынаецца любы працэс, названыя ў файле пароляў. Гэты працэс часта Баш абалонка. Калі так, то баш пачынаецца і замяняе працэс ўваходу ў сістэму. Звярніце ўвагу, што адзін працэс змяняе іншы, і працэс абалонкі Баша першапачаткова як працэс Геці. Наступствы гэтага будуць растлумачаны ніжэй.

Цяпер у / і г.д. / inittab файл, Геці мяркуецца респауна (перазагрузка), калі забіты. Ён кажа так на лініі, якая выклікае Геці. Але калі абалонка Баш (або працэс Лагін) забіты Геці респавнится (перазагружаецца). Чаму? Ну, і працэс лагіна і Баш з'яўляецца заменай для Геці і ўспадкаваць

* Тэкст тэрмінал How-To індэкс

злучэння сігналу усталёўваюць іх папярэднікамі. На самай справе, калі вы назіраеце дэталі можна заўважыць, што працэс замены будзе мець той жа ідэнтыфікатар працэсу ў якасці зыходнага працэсу. Такім чынам, удар з'яўляецца свайго роду Геці ў маскіроўцы з такой жа працэс, ідэнтыфікацыйны нумар. Калі Баш забіты ён гэтак жа, як Геці быў забіты (нават калі Геці не працуе больш). Гэта прыводзіць да Геці пакаў.

Калі адзін выходзіць з сістэмы, усе працэсы па гэтым паслядоўным порце забіваюць у тым ліку абалонкі Bash. Гэта таксама можа адбыцца (калі ўключана), калі сігнал завісання пасылаюцца ў паслядоўны порт падзеннем напружання DCD з дапамогай мадэма. Альбо выхад з сістэмы або падзенне ў DCD прывядзе да Геці пакаў. Можна прымусіць Геці адродзіцца ўручную якая забівае Баш (ці лагін) альбо націснуўшы клавішу K і г.д., а ў «зверху» або з дапамогай каманды «забіць». Вы, верагодна, трэба, каб забіць яго з сігналам 9 (якія не могуць быць праігнараваныя).

Калі Геці запусціць з каманднага радка: Праграмы спыняюць

Вы павінны нармальна працаваць Геці з ўнутры / і г.д. / inittab , а не з каманднага радка ці яшчэ некаторыя праграмы , якія працуюць на тэрмінале можа быць нечакана прыпынена (спынены). Вось чаму (пераходзіце да наступнага падзелу, калі, чаму гэта не важна для вас). Калі пачаць Геці для скажам ttyS1 з каманднага радка іншага тэрмінала, скажам tty1, то ён будзе мець tty1 ў якасці свайго «кіраўніка тэрмінала», нават калi сапраўдны тэрмінал ён працуе на гэта ttyS1. Такім чынам, мае няправільны кіраўнік тэрмінал. Але калі ён пачаў ўнутры inittab файл, то ён будзе мець ttyS1 ў якасці кіраўніка тэрмінала (правільны).

Нават нягледзячы на ​​тое, кіраўнік тэрмінал не так, Увайсці на ttyS1 працуе выдатна (так як вы далі ttyS1 ў якасці аргументу Геці). Стандартны ўвод і выснова настроены на ttyS1, хоць кіраўнік тэрмінал застаецца tty11. Іншыя праграмы працуюць на ttyS1 могуць успадкаваць гэта стандартны ўвод / выснова (які падлучаны да ttyS1) і ўсё ў парадку. Але некаторыя праграмы могуць зрабіць памылку, спрабуючы прачытаць ад іх кіраўніка тэрмінала (tty1), які з'яўляецца няправільным. Цяпер tty1 можа падумаць, што гэтыя праграмы ў цяперашні час працуюць у фонавым рэжыме tty1 так спробу чытання з tty1 (гэта павінна было быць ttyS1) прыводзіць да прыпынку працэсу, які спрабаваў чытаць. (Фонавы працэс не можа чытаць з кіраўніка тэрмінала.). Вы можаце ўбачыць паведамленне что - нешта накшталт: «[1] + Stopped» на экране. На дадзены момант вы затрымаліся, так як вы не можаце ўзаемадзейнічаць з працэсам, які спрабуе мець зносіны з вамі праз няправільны тэрмінал. Вядома, каб адысці ад гэтага вы можаце перайсці на іншы тэрмінал і забіць працэс, і г.д.

agetty (можа быць названы Геці)

Прыклад радкі ў / і г.д. / inittab:

S1: 23: респауна: / SBIN / Геці -L 19200 ttyS1 vt102

S1 ад ttyS1. 23 азначае, што Геці запускаецца пры ўваходзе ў узроўнях выканання 2 ці 3. респауна азначае, што калі Геці (або працэс, які замяніў яго, такія як Баш) забіты, Геці аўтаматычна запусціцца (респауна) зноў. / SBIN / Геці з'яўляецца каманда Геці. -L азначае Лакальны (ігнараваць сігналы кіравання мадэмам). -h (не паказана ў прыкладзе) дазваляе апаратнае кіраванне патокам дадзеных (такі ж, як Stty CRTSCTS). 19200 з'яўляецца хуткасць перадачы дадзеных. ttyS1 азначае / DEV / ttyS1 (COM2 ў MS-DOS). vt102 гэта тып тэрмінала і гэта Геці ўсталюе зменную асяроддзі TERM да гэтага значэння. Там няма файлаў канфігурацыі. Увядзіце «ініцыялізацыі д» у камандным радку пасля рэдагавання Геці, і вы павінны ўбачыць запрашэнне для ўваходу.

аўтавызначэнне сек праблем цотнасці; Agetty & # 39

Праграма agetty паспрабуе аўтаматычна вызначыць парытэт усталяваны ўнутры тэрмінала (не уключаючы адсутнасць кантролю па цотнасці). Ён не падтрымлівае 8-бітныя байты дадзеных плюс 1 біт цотнасці. См 8-бітны байт дадзеных (плюс цотнасці). Калі вы выкарыстоўваеце Запушчаная ўсталяваць парытэт, agetty будзе аўтаматычна знятая з аховы яго , так як ён першапачаткова хоча біт цотнасці прыйсці праз , як калі б гэта быў біт дадзеных. Гэта таму, што трэба, каб атрымаць апошні біт (магчыма, біт цотнасці), як вы ўводзіце свой лагін-імя, так што ён можа аўтаматычна вызначаць парытэт. Такім чынам , калі вы выкарыстоўваеце цотнасці, уключыце яго толькі ўнутры тэксту тэрмінала і хай agetty аўтаматычна выявіць яго і ўсталяваць яго на кампутары. Калі ваш тэрмінал падтрымлівае прыняты парытэт, то Увайсці запыт будзе выглядаць скажоным да таго часу, пакуль нешта тыпу так, што Геці можа выявіць

цотнасці. Скажоная падказка будзе стрымліваць наведвальнік і г.д. ад спробаў ўваходу. Гэта можа быць толькі тое, што вы хочаце.

Існуе часам праблема з аўтаматычным выяўленнем цотнасці. Гэта адбываецца таму , што пасля таго, як вы першы увядзіце імя карыстальніка, agetty запускае праграму ўваходу для завяршэння рэгістрацыі вам. На жаль, праграма Лагін не можа вызначыць цотнасць , так што калі праграма Геці не ўдалося вызначыць цотнасць тады Лагін не будзе ў стане вызначыць , гэта небудзь. Калі першая спроба не ўдаецца Лагін, Лагін дазволіць вам паспрабаваць яшчэ раз, і г.д. (усе з цотнасці набору няправільна). У рэшце рэшт, пасля таго, як лік няўдалых спробаў ўвайсці ў сістэме (або пасля таго, як тайм - аўту) agetty пачне зноў і пачаць ўваход паслядоўнасць зноў і зноў. Пасля таго, як Геці працуе зноў, ён можа быць у стане выявіць цотнасць з другой спробы, так што ўсё можа затым працаваць нармальна.

Пры няправільнай цотнасці, праграма Лагін не можа правільна чытаць тое , што вы друкуеце , і вы не можаце ўвайсці ў сістэму. Калі ваш тэрмінал падтрымлівае атрымалі парытэт, вы будзеце працягваць бачыць скажоны экран. Калі Геці не ўдаецца выявіць суадносіны / і г.д. / файл праблема звычайна скідаў на экран непасрэдна перад перад падказкай, так яшчэ скажоных слоў можа з'яўляцца на экране.

Чаму agetty не можа вызначыць суадносіны па першай літары набярэцца? Вось прыклад: Выкажам здагадку, ён выяўляе, 8-бітавы байт з яго цотнасці біт 0 (біт высокага парадку) і з няцотных лікам 1-біт. Якое суадносіны гэта? Ну, няцотны лік 1 біт азначае, што гэта няцотнасць. Але гэта таксама можа быць проста 8-бітны сімвал, без цотнасці. Там няма ніякага спосабу, да гэтага часу для вызначэння. Але да гэтага часу мы выключылі магчымасць нават парытэту. Вызначэнне цотнасці, такім чынам, адбываецца з дапамогай працэсу ліквідацыі.

Калі наступны байт набіраецца аналагічна першаму, а таксама толькі выключае магчымасць нават парытэту, яна па-ранейшаму немагчыма вызначыць цотнасць. Такая сітуацыя можа працягвацца бясконца, і ў рэдкіх выпадках Увайсці пацерпіць няўдачу, пакуль вы не зменіце свой лагін-імя. Калі agetty знаходзіць трохі цотнасці 1, будзе лічыць, што гэта біт цотнасці, а не высокага парадку біт з 8-бітнага знака. Такім чынам, мяркуецца, што вы не выкарыстоўваеце мета-знакі (старэйшы біт набор) у імя карыстальніка (гэта значыць, што ваша імя ў ASCII).

Можна патрапіць у «рэгістрацыю цыклу» рознымі спосабамі. Выкажам здагадку, вы толькі ўвесці адну літару ці два для Вашага імя карыстальніка, а затым націсніце вяртання. Калі гэтыя ліста не з'яўляюцца дастатковымі для вызначэння цотнасці, а затым ўвайсці ў сістэму, перш чым прабегі цотнасці было выяўлена. Часам гэтая праблема ўзнікае, калі ў вас няма тэрмінала, і / або злучаны пры agetty першага запуску.

Калі вы затрымаліся ў гэтай «пятлі ўваходу» выхад з яго, каб ўразіць вяртання клавішы некалькі разоў, пакуль вы не атрымаеце Геці запрашэння для ўваходу. Іншы спосаб, гэта проста пастойце або так для тайм-аўту. Затым Геці Лагін запыт будзе пастаўлены на экране праграмы Геці, і вы можаце паспрабаваць яшчэ раз увайсці ў сістэму.

8-бітны байт дадзеных (плюс цотнасці)

На жаль, agetty не можа выявіць гэтыя суадносіны. Па стане на канец 1999 года ён не мае опцыю для адключэння аўтаматычнага выяўлення цотнасці і, такім чынам, будзе выяўляць няправільную цотнасць. Вынікам з'яўляецца тое, што працэс Лагін будзе скажоны і цотнасць будзе ўсталяваны няправільна. Такім чынам, не ўяўляецца магчымым, каб паспрабаваць выкарыстаць 8-бітныя байты дадзеных з кантролем цотнасці.

Геці (частка getty_ps)

(Большая частка гэтага ад старога Serial-HOWTO Грег Hankins)
Для гэтага Геці трэба як змясціць запісы ў файл канфігурацыі і дадаць запіс у / і г.д. / inittab. Вось некаторыя дадзеныя прыклады , каб выкарыстоўваць для вашага тэрмінала , які вы паклалі ў канфігурацыйны файл / і г.д. / gettydefs.

# 38400 бод Тупы ўваход тэрмінала DT38400 # B38400 CS8 CLOCAL # B38400 Сане -ISTRIP CLOCAL # @ S @L Увайсці: # DT38400 # 19200 бод Тупы тэрмінал ўваход DT19200 # B19200 CS8 CLOCAL # B19200 Сане -ISTRIP CLOCAL # @ S @L Лагін: # DT19200 # 9600 бод Тупы Тэрмінал ўваходу DT9600 # B9600 CS8 CLOCAL # B9600 сане -ISTRIP CLOCAL # @ S @l лагін: # DT9600

Звярніце ўвагу , што DT38400, DT19200 і г.д., толькі этыкетка і павінен быць такім жа , што вы выкарыстоўваеце ў / і г.д. / inittab.

Калі вы хочаце, вы можаце зрабіць Геці друкаваць цікавыя рэчы пры ўваходзе ў банэры. У маіх прыкладах, у мяне ёсць імя сістэмы і паслядоўная лінія друку. Вы можаце дадаць і іншыя рэчы: [BLOCKQUOTE

цень = ды] @B Ток (ацэньваецца ў момант значэння @B) у біт хуткасць. @D бягучую дату ў фармаце ММ / ДД / ГГ. @L паслядоўнай лініі , да якой падлучаны Геці. @S Імя сістэмы. @T бягучы час у фармаце HH: MM: SS (24-гадзінны). @U Лік якія працуюць у дадзены момант на карыстальнікаў. Гэта падлік колькасці запісаў у / і г.д. / файл utmp , якія маюць непустым поле ut_name. @V Значэнне VERSION, як паказана ў файле па змаўчанні. Для адлюстравання аднаго знака "@", выкарыстоўвайце або «\ @» або «@@».

Калі вы скончыце рэдагаванне / і г.д. / gettydefs, вы можаце пераканацца ў тым , што сінтаксіс з'яўляецца правільным, выканаўшы:

Linux # Геці -c / і г.д. / gettydefs

Пераканайцеся , што няма іншага Геці або uugetty канфігурацыйнага файла для паслядоўнага порта , які падлучаны ваш тэрмінал да такіх , як (/etc/default/{uu}getty.ttyS N або /etc/conf.{uu}getty.ttyS N) , так як гэта будзе , верагодна , перашкаджаць працуе Геці на тэрмінале. Выдаліць такія канфліктуючыя файлы, калі яны выходзяць.

Рэдагаваць / і г.д. / inittab файл для запуску Геці па паслядоўным порце (у правільнай інфармацыі для вашай асяроддзя - порт, хуткасць, і па змаўчанні тыпу тэрмінала):

S1: 23: респауна: / SBIN / Геці ttyS1 DT9600 VT100 INIT Linux # ініцыялізацыі д

На дадзены момант, вы павінны ўбачыць запрашэнне на ўваход у тэрмінале. Вы, магчыма, прыйдзецца ударыць вяртанне, каб прыцягнуць увагу тэрмінала.

Mgetty

«М» азначае мадэм. Гэтая праграма ў першую чаргу для мадэмаў і па стане на сярэдзiну 2000 г. запатрабуе перакампіляванні, каб выкарыстоўваць яго для тэкставых тэрміналаў (калі не выкарыстоўваць апаратнае кіраванне патокам --і што звычайна патрабуецца кабель ручной). Для дакументацыі непасрэдна падлучаных тэрміналаў у раздзеле «Прамая» кіраўніцтва: mgetty.texi.

Паглядзіце на апошнія радкі /etc/mgetty/mgetty.config для прыкладу яго налады для тэрмінала. Калі вы не кажаце «няма пераключэння-DTR няма», ён будзе думаць, што ў вас ёсць мадэм і падзенне (нівеліруе) загваздка DTR на ПК з марным спробе скінуць неіснуючы мадэм. У адрозненне ад іншых Геці, Mgetty не будзе далучацца да тэрмінала, пакуль хтосьці не трапляе якой-небудзь ключ гэтага тэрмінала, так што вы ўбачыце? для тэрмінала ў верхняй або пс , пакуль гэта не адбудзецца. Бярвёны в / вар / Часопіс / Mgetty / можа паказаць некалькі папераджальных паведамленняў , якія дастасавальныя толькі да мадэма , якія вы можаце ігнараваць.

Вось прыклад просты лініі вы паклалі ў / і г.д. / inittab:

s1: 23: респауна: / SBIN / Mgetty -r ttyS1