Тект-терминали на Линуку

14.1 Гетти (користи се у / етц / иниттаб)

Увод у Гетти

Да би се процес пријављивања покренуо на серијском порту (и прикључен на њега) када се рачунар покреће (или прекидачи раде нивои), мора се ставити гетти наредба у датотеку / етц / иниттаб. Руннинг гетти из командне линије може изазвати проблеме (погледајте Ако се гетти покреће из командне линије: програми се заустављају да виде зашто). Гетти добија ТТИ (терминал) који иде. Сваки терминал потребан је свој властити гетти команду. Постоји и барем једна гетти наредба за конзолу у свакој / етц / иниттаб датотеки. Нађите ово и ставите Гетти команде за праве терминале поред њега. Ова датотека може садржавати узорке гетти линија за текстуалне терминале који су коментарисани тако да све што треба да урадите је да их унцомментирате (уклоните водећи #) и промените неколико аргумената.

Аргументи који су дозвољени зависе од којих гета користите:
Најважнија два терминала за директно прикључене терминале су:

Најважнија два приступа за диал-ин модеме (избегавање за директно прикључене терминале) су:

Једноставне гетти које користите ако не користите прави текст-терминал. Већина корисника Линук-а користи један од њих на свом монитору:

Ваша дистрибуција Линука може да се појави са пс_гетти или агетти за текст-терминале. Неке дистрибуције не испоручују нити. Нажалост, често их само називају "гетти", па ћете можда морати да одредите који сте од аргумената који сте ставили након тога у / етц / иниттаб разликовали. Дебиан користи агетти (у пакету утил-Линук). РедХат и Федора су користили пс_гетти који је на: пс_гетти

Као последње средство за покушај одређивања који гети имате, можете погледати његов извршни код (обично у / сбин). пс_гетти има / етц / геттидефс уграђене у овај код. Да бисте га потражили, идите на / сбин и откуцајте:
стрингс гетти | греп гетти
Ако је Гетти у ствари агетски, горње ће резултирати ништвом. Међутим, ако имате агетичку куцање:
Гетти-х
треба да прикажу опције [-хиЛмв].

Ако немате гајтан, желите проверити друге дистрибуције и програм ванземаљаца да претварате између РПМ и Дебиан пакета. Изворни код се може преузети са Гетти Софтваре-а.

Ако не користите модемске контролне линије (на пример, ако користите само минимални број 3 проводника: преношење, пријем и заједничко сигнално тло), требало би да дозволите Гетти-у да то знате користећи "локалну" заставу. Формат овога зависи од ког гета користите.

Гетти излази након пријаве (и може отпустити)

Када се пријавите, приметићете (користећи "топ", "пс -ак" или "птрее") да се процес гетти више не покреће. Шта се десило? Зашто се гити поново покреће ако је ваша љуска убијена? Ево зашто.

Када укуцате своје корисничко име, Гетти га преузима и позива програм за пријављивање с поруком ваше корисничко име. Кретање се замењује процесом пријављивања. Процес пријављивања тражи своју лозинку, провјерава и покреће сваки процес који је наведен у вашој датотеци лозинке. Овај процес је често басх схелл. Ако је тако, басх почиње и замењује процес пријављивања. Имајте на уму да један процес замењује други и да је басх схелл процес првобитно започео као гетти процес. Импликације овога ће бити објашњене у наставку.

Сада у фајлу / етц / иниттаб, Гетти би требао да респавн (рестарт) ако је убијен. Пише тако на линији која зове Гетти. Али ако је баш схелл (или процес пријављивања) убијен, Гетти респавнс (рестартс). Зашто? Па, и процес пријављивања и басх су замене за Гетти и наслеђивање

* Тект Терминал Хов-То Индекс

сигналне везе успостављају њихови претходници. Заправо, ако посматрате детаље које ћете приметити да ће процес замјене имати исти ИД процеса као и првобитни процес. Дакле, басх је врста гета у маски са истим идентификационим бројем процеса. Ако је баш убијен, то је исто као што је убијен Гетти (иако Гетти више не трчи). Ово доводи до гутања.

Када се један одјави, сви процеси на том серијском порту убијају се укључујући басх схелл. Ово се такође може десити (ако је омогућено) ако се на долазни сигнал пренесе хангуп сигнал са падом ДЦД напона модема. Или одјављивање или опадање ДЦД-а резултираће готовим респавнингом. Један може применити Гетти на респавн ручним убијањем басх-а (или пријављивања) било притиском на тастер к, итд. Док је у "топ" или са "килл" командом. Вероватно ћете морати да га убијете сигналом 9 (који се не може игнорисати).

Ако се гетти покрене из командне линије: Програми се заустављају

Обично треба да водите Гетти из унутрашњости / етц / иниттаб, а не из командне линије или уколико неки програми који се покрећу на терминалу могу бити неочекивано обустављени (заустављени). Ево зашто (прећи на следећи одељак ако вам зашто није важно). Ако започнете Гетти за рећи ттиС1 из командне линије другог терминала, реците тти1, онда ће имати тти1 као свој "контролни терминал" иако је стварни терминал на којем ради на ттиС1. Стога има погрешан контролни терминал. Али ако се започне унутар датотеке иниттаб онда ће имати ттиС1 као контролни терминал (тачан).

Иако је контролни терминал погрешан, пријављивање на ттиС1 ради добро (пошто сте дали ттиС1 као аргумент за Гетти). Стандардни улаз и излаз су постављени на ттиС1 иако контролни терминал остане тти11. Остали програми на ттиС1 могу наследити овај стандардни улаз / излаз (који је повезан са ттиС1) и све је у реду. Али неки програми могу направити грешку у покушају читања са њиховог контролног терминала (тти1) што није у реду. Сада тти1 може сматрати да се ови програми покрећу у позадини помоћу тти1, тако да покушај читања од тти1 (то би требао бити ттиС1) резултира у заустављању процеса који је покушао да прочита. (Позадински процес није дозвољен за читање са његовог контролног терминала.). На екрану можете видети поруку слично: " [1] + Стоппед ". У овом тренутку заглавите се јер не можете да интеракцију са процесом који покушава да комуницира с вама преко погрешног терминала. Наравно да побегнете од овога, можете ићи на други терминал и убити процес, итд.

агетти (може се назвати гетти)

Линија примера у / етц / иниттаб:

С1: 23: респавн: / сбин / гетти -Л 19200 ттиС1 вт102

С1 је из ттиС1. 23 значи да се гетти покреће након уласка у ниво 2 или 3. Руннинг значи да ако је Гетти (или процес који га је заменио као басх) убијен, Гетти ће поново покренути (респавн) поново. / сбин / гетти је наредба гетти. -Л значи Локално (игнорирај модемске контролне сигнале). -х (није приказано у примеру) омогућава контролу тока хардвера (исто као и стти цртсцтс). 19200 је бауд стопа. ттиС1 значи / дев / ттиС1 (ЦОМ2 у МС-ДОС). вт102 је тип терминала и овај гетти ће поставити варијаблу околине ТЕРМ на ову вриједност. Нема конфигурационих датотека. Укуцајте "инит к" у командној линији након едитовања гетти-а и требали бисте видети пријавну пријаву.

Агетова аутоматска детекција проблема са паритетом

Агетти програм ће покушати да аутоматски открије паритет постављен унутар терминала (укључујући и паритет). Не подржава 8-битне бајтове података плус 1-битну паритету. Погледајте 8-битне бајтове података (плус паритет). Ако користите Стти да бисте подесили паритет, агетти ће га аутоматски уносити , јер у почетку жели да паритетни бит дође као да је био бит података. То је зато што треба да добијете последњи бит (могуће паритетни бит) док упишете име за пријаву тако да може аутоматски открити паритет. Дакле, ако користите паритет, омогућите га само унутар текстуалног терминала и пустите агетти да га аутоматски открије и подеси на рачунар. Ако ваш терминал подржи примљену паритету, пријавни упит ће изгледати поприлично док не унесете нешто тако да Гетти може открити

паритет. Жалба ће одвести посетиоце и слично покушавајући да се пријавите. То би могло бити оно што желите.

Понекад постоји проблем са аутоматским откривањем паритета. Ово се дешава зато што након што први пут унесете своје корисничко име, агетти покреће програм за пријављивање да би се завршио пријављивање. На жалост, програм за пријављивање не може открити паритет, тако да ако програм гетти не успије да одреди паритет онда логин неће моћи одредити било то. Ако први покушај пријављивања не успе, пријављивање ће вам омогућити да покушате поново, итд. (Све са погрешним постављањем паритета). На крају, након више неуспелих покушаја пријављивања (или након истека времена) агетти ће поново покренути и започети секвенце пријављивања. Када се Гетти поново покрене, можда ће бити у могућности да открије паритет на другом покушају како би све могло да ради добро.

Са погрешном паритетом, програм за пријављивање не може исправно прочитати оно што упишете и не можете да се пријавите. Ако ваш терминал подржи примљену паритету, наставићете да видите ишчитани екран. Ако Гетти не успева да открије паритет, фајл / етц / иссуе се обично баца на екран непосредно пре него што је постављен позив, тако да се на екрану могу појавити још чудније речи.

Зашто агетти не може открити паритет првим словом откуцаним? Ево примера: Претпоставимо да детектује 8-битни бајт с паритетним битом 0 (бит великог реда) и непарним бројем 1-бита. Каква је паритета? Па, непаран број од 1 бита значи да је чудна паритета. Али то би могло бити само 8-битан карактер без паритета. До сада нема начина да се утврди. Али до сада смо елиминисали могућност чак паритета. Детекција паритета стога наставља процесом елиминације.

Ако је следећи бајт укуцан сличан првом и само елиминише могућност чак паритета, и даље је немогуће одредити паритет. Ова ситуација може се наставити на неодређено време, а у ретким случајевима пријављивање ће престати док не промените име за пријаву. Ако агетти нађе паритетни бит од 1, претпоставит ће се да је то паритетни бит, а не бит високог реда 8-битног карактера. Због тога претпоставља се да не користите мета-карактере (велики број битова) у вашем корисничком имену (тј. Да је ваше име у АСЦИИ-у).

Може се наћи на "петљи за пријављивање" на различите начине. Претпоставимо да упишете само једно или друго слово за ваше име за пријаву, а затим притисните повратак. Ако ова слова нису довољна за откривање паритета, онда се пријављивање покреће пре откривања паритета. Понекад се овај проблем дешава ако немате терминал и / или повезан када се први пут покреће.

Ако се заглавите у овој "логин петљи", излаз из ње је неколико пута притиснути тастер за повратак док не добијете лозинку за пријављивање на Гетти. Други начин је да сачекате минут или нешто за временски распоред. Затим ће се гетти програм ставити на екран да бисте се пријавили на лозинку и можда ћете покушати поново да се пријавите.

8-битни бајт података (плус паритет)

На жалост, агетти не може да открије тај паритет. Од краја 1999. године нема опцију за онемогућавање аутоматског откривања паритета и тиме открива нетачну паритету. Резултат је да ће процес пријављивања бити попуштен и паритет ће бити погрешно подешен. Стога изгледа да није могуће покушати користити 8-битне бајтове података са паритетом.

гетти (део гетти_пс)

(Већина овог је од старог серијалног ХОВТО-а од Грег Ханкинса)
За овај гајтан треба ставити ставке у конфигурациону датотеку и додати унос у / етц / иниттаб . Ево неких примера уноса који се користе за ваш терминал који ставите у конфигурациону датотеку / етц / геттидефс .

# 38400 бпс Думб Терминал улаз ДТ38400 # Б38400 ЦС8 ЦЛОЦАЛ # Б38400 САНЕ -ИСТРИП ЦЛОЦАЛ # @ С @ Л логин: # ДТ38400 # 19200 бпс Думб Терминал улаз ДТ19200 # Б19200 ЦС8 ЦЛОЦАЛ # Б19200 САНЕ -ИСТРИП ЦЛОЦАЛ # @ С @ Л логин: # ДТ19200 # 9600 бпс Думб Терминал улаз ДТ9600 # Б9600 ЦС8 ЦЛОЦАЛ # Б9600 САНЕ -ИСТРИП ЦЛОЦАЛ # @ С @ Л логин: # ДТ9600

Имајте на уму да су ДТ38400, ДТ19200 итд. Само етикете и морају бити исти као што користите у / етц / иниттаб .

Ако желите, можете направити занимљиве ствари на сајту за пријављивање. У мојим примјерима, имам име система и серијску линију штампану. Можете додати и друге ствари: [блоккуоте

схаде = да] @Б Струја (процијењена у тренутку када се види @Б) бпс стопа. @Д Тренутни датум, у ММ / ДД / ИИ. @Л Серијску линију на коју је прикачен гетти. @С Име система. @Т Тренутно време, у ХХ: ММ: СС (24-сатно). @У Број тренутно пријављених корисника. Ово је број броја уноса у / етц / утмп датотеци који имају не-нулл ут_наме поље. @В Вредност ВЕРСИОН, како је дата у подразумеваној датотеци. Да бисте приказали један знак '@', користите '\ @' или '@@'.

Када завршите са уређивањем / етц / геттидефс , можете потврдити да је синтакса исправна:

линук # гетти -ц / етц / геттидефс

Уверите се да не постоји друга конфигурацијска датотека гетти или уугетти за серијски порт који је повезан са вашим терминалом ( нпр. /етц/дефаулт/{уу}гетти.ттиС Н или /етц/цонф.{уу}гетти.ттиС Н ) , јер ће ово вјероватно ометати покретање гета на терминалу. Уклоните такве конфликтне датотеке ако изађу.

Измените датотеку / етц / иниттаб да бисте покренули гетти на серијском порту (заменом одговарајућих информација за вашу околину - порт, брзину и подразумевани тип терминала):

С1: 23: респавн: / сбин / гетти ттиС1 ДТ9600 вт100 у томе линук # инит к

У овом тренутку, требало би да видите позив за пријављивање на вашем терминалу. Можда ћете морати да повратите како бисте привукли пажњу терминала.

мгетти

"М" означава модем. Овај програм је првенствено за модеме, а од средине 2000. године ће захтевати поновно компајлирање да га користи за текст-терминале (осим ако не користите хардверску контролу протока - а то обично захтева ручни кабел). За документацију за директно прикључене терминале погледајте одељак "Директно" у приручнику: мгетти.теки.

Погледајте последње линије /етц/мгетти/мгетти.цонфиг за пример конфигурације за терминал. Осим ако не кажете "тоггле-дтр но", помислиће вам да имате модем и испустите (негирати) ДТР пин на рачунару узалудан покушај ресетовања необичног модема. За разлику од других гетти-ова, мгетти се неће прикључити на терминал док неко не удари било који тастер тог терминала, па ћете видети? за терминал на врху или пс док се ово не догоди. Дневници у / вар / лог / мгетти / могу приказати неколико упозоравајућих порука које се примењују само на модеме које можете игнорисати.

Ево примера једноставне линије коју унесете у / етц / иниттаб:

с1: 23: респавн: / сбин / мгетти-р ттиС1