Terminals tat-Test fuq il-Linux

14.1 Getty (użat f '/ etc / inittab)

Introduzzjoni għal Getty

Sabiex ikun hemm proċess ta 'login fuq port tas-serje (u t-terminal konness miegħu) meta l-kompjuter jibda (jew jaqleb il-livelli run), ordni getty għandha titqiegħed fil-fajl / etc / inittab. L-operat ta 'getty mill-linja tal-kmand jista' jikkawża problemi (ara Jekk getty jimxi mill-linja tal-kmand: Programmi jitwaqqfu biex tara għaliex). Getty GETs TTY (a terminal) għaddej. Kull terminal għandu bżonn il-kmand tiegħu stess. Hemm ukoll mill-inqas kmand getty wieħed għall-console f'kull fajl / etc / inittab. Sib dan u poġġi l-ordnijiet ta 'l-getty għat-terminals reali li jmiss lilha. Dan il-fajl jista 'jkun fih linji getty tal-kampjun għat-terminals tat-test li huma kkummentati b'tali mod li kull ma għandek bżonn tagħmel huwa li ma tikkonsenjahomx (neħħi l-jwassal #) u tibdel ftit argumenti.

L-argumenti li huma permessi jiddependu fuq liema getty tuża:
Żewġ gettys l-aħjar għat-terminals konnessi direttament huma:

Żewġ gettys aħjar għall-dial-in modems (evitati għal terminals konnessi direttament) huma:

Għandhom jintużaw sempliċi gettys jekk ma tużax terminal tat-test reali. Ħafna utenti ta 'Linux jużaw waħda minn dawn fil-monitor tagħhom:

Id-distribuzzjoni Linux tiegħek tista 'tiġi flimkien ma' ps_getty jew agetty għal terminals tat-test. Xi distribuzzjonijiet la jipprovdu la. Sfortunatament, ħafna drabi jsejħuha "getty" sabiex jista 'jkollok bżonn tiddetermina liema waħda għandek mill-argumenti li tpoġġi wara / in / etc / inittab differenti. Debian juża agetty (fil-pakkett util-linux). RedHat u Fedora użaw ps_getty li hija f ': ps_getty

Bħala l-aħħar għażla biex tipprova tiddetermina liema getty għandek, tista 'tara l-kodiċi eżekutibbli tagħha (ġeneralment fi / sbin). ps_getty / etc / gettydefs inkorporat f'dan il-kodiċi. Biex tfittex dan, mur / sbin u t-tip:
strings getty | grep getty
Jekk getty hija attwalment agetty hawn fuq jirriżulta f'xejn. Madankollu jekk għandek ittajpjar agetty:
getty -h
għandu juri l-għażliet [-hiLmw].

Jekk m'għandekx l-getty trid tivverifika distribuzzjonijiet oħra u l-programm barrani biex jikkonverti bejn pakketti ta 'RPM u Debian. Il-kodiċi tas-sors jista 'jitniżżel minn Getty Software.

Jekk m'intix tuża linji ta 'kontroll modem (per eżempju jekk tuża biss in-numru minimu ta' 3 kondutturi: ittrasmetti, tirċievi u art sinjalali), għandek tħalli lil dak l-iskadenza tkun taf billi tuża bandiera "lokali". Il-format ta 'dan jiddependi fuq liema getty tuża.

Getty joħroġ wara l-login (u jista 'jerġa' jitla ')

Wara li tkun log in tinduna (bl-użu ta '"top", "ps -ax", jew "ptree") li l-proċess getty m'għadux jaħdem. Dak li ġara lilu? Għaliex l-getty jerġa 'jibda mill-ġdid jekk il-qoxra tiegħek tinqatel? Hawn għaliex.

Wara li ttajpja l-isem ta 'l-utent tiegħek, getty jieħuh u jsejjaħ il-programm ta' l-login billi jgħidlek l-isem ta 'l-utent tiegħek Il-proċess getty jiġi mibdul bil-proċess tal-login. Il-proċess tal-login jitlob il-password tiegħek, iċċekkjah u jibda kwalunkwe proċess speċifikat fil-fajl tal-password tiegħek. Dan il-proċess spiss ikun il-qoxra tal-bash. Jekk iva, bash jibda u jissostitwixxi l-proċess tal-login. Innota li proċess wieħed jissostitwixxi ieħor u li l-proċess tal-qxur tal-bash oriġinarjament beda bħala l-proċess getty. L-implikazzjonijiet ta 'dan se jiġu spjegati hawn taħt.

Issa fil-fajl / etc / inittab, getty suppost jerġa 'jibda (jerġa' jibda) jekk jinqatel. Jgħid hekk fuq il-linja li s-sejħiet getty. Imma jekk il-qoxra tal-bash (jew il-proċess ta 'l-identifikazzjoni) jinqatel, jerġa' jibda jerġa 'jibda (startjar mill-ġdid). Għaliex? Ukoll, kemm il-proċess ta 'login kif ukoll il-bash huma sostituti għal getty u jirtu

* Indiċi ta 'Kif Issottja Terminal tat-Test

il-konnessjonijiet tas-sinjal jistabbilixxu mill-predeċessuri tagħhom. Fil-fatt jekk tosserva d-dettalji tinnota li l-proċess ta 'sostituzzjoni jkollu l-istess ID tal-proċess bħall-proċess oriġinali. B'hekk bash huwa tip ta 'getty moħbija bl-istess numru ta' ID tal-proċess. Jekk il-bah jinqatel huwa daqs li kieku l-getty inqatel (minkejja li l-getty mhix qed tahdem aktar). Dan jirriżulta fi tħejjija mill-ġdid.

Meta wieħed jiffirma, il-proċessi kollha fuq dak il-port tas-serje jinqatlu inkluż il-qoxra tal-bash. Dan jista 'jiġri wkoll (jekk jitħalla) jekk sinjal ta' hangup jintbagħat lill-port tas-serje billi tinqata 'l-vultaġġ DCD mill-modem. Jew il-waqfien jew it-tnaqqis fid-DCD iwassal għal tnaqqis fir-reqqa. Wieħed jista 'jġiegħel lill-getty terġa' titreġġa 'billi toqtol il-bash manwalment (jew login) jew billi laqtu ċ-ċavetta k, eċċ waqt li tkun "fuq" jew bil-kmand "joqtol". Probabbilment ikollok bżonn li toqtolha b'sinjal 9 (li ma tistax tiġi injorata).

Jekk getty jimxi mill-linja tal-kmand: il-Programmi jitwaqqfu

Normalment għandek tmexxi l-getty minn ġewwa / etc / inittab u mhux mil-linja tal-kmand jew inkella xi programmi li jitħaddmu fuq it-terminal jistgħu jiġu sospiżi għal għarrieda (waqfu). Hawn għaliex (skip lejn is-sezzjoni li jmiss jekk ir-raġuni mhix importanti għalik). Jekk tibda l-getty ttyS1 mill-linja tal-kmand ta 'terminal ieħor, ngħidu tty1, imbagħad ikollha tty1 bħala "terminal ta' kontroll" anki jekk it-terminal attwali li timxi fuq ttyS1. Għalhekk għandu t-terminal ta 'kontroll ħażin. Imma jekk tkun bdiet ġewwa l-fajl inittab allura jkollha ttyS1 bħala t-terminal tal-kontroll (korrett).

Anke jekk it-terminal ta 'kontroll huwa żbaljat, id-dħul f'ttyS1 jaħdem tajjeb (peress li tajt ttyS1 bħala argument għal getty). L-input u l-output standard huma ssettjati għal ttyS1 anki jekk it-terminal tal-kontroll jibqa tty11. Programmi oħra mmexxija f'ttyS1 jistgħu jirtu dan l-input / output standard (li huwa konness ma 'ttyS1) u kollox huwa OK. Imma xi programmi jistgħu jagħmlu l-iżball li jippruvaw jaqraw mit-terminal ta 'kontroll tagħhom (tty1) li huwa żbaljat. Issa tty1 jista 'jaħseb li dawn il-programmi qed jitmexxew fl-isfond bi tty1 hekk tentattiv biex wieħed jaqra minn tty1 (kellu jkun ttyS1) jirriżulta fi waqfien tal-proċess li pprovaw jaqraw. (Proċess ta 'sfond mhux permess li jaqra mit-terminal ta' kontroll tiegħu.). Tista 'tara messaġġ xi ħaġa bħal: " [1] + Waqqaf " fuq l-iskrin. Fuq dan il-punt inti staġnati peress li ma tistax taġixxi ma 'proċess li qed jipprova jikkomunika miegħek permezz tat-terminal ħażin. Naturalment biex jaħrab minn dan tista 'tmur għal terminal ieħor u toqtol il-proċess, eċċ.

agetty (jista 'jiġi msemmi getty)

Linja ta 'eżempju f' / etc / inittab:

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

S1 huwa minn ttyS1. 23 ifisser li l-getty jitmexxa meta jidħol fil-livelli run 2 jew 3. respawn ifisser li jekk jinqatel getty (jew proċess li biddelha bħal bash), getty jerġa 'jibda (respawn) awtomatikament. / sbin / getty huwa l-kmand getty. Il-L tfisser Lokali (tinjora s-sinjali ta 'kontroll modem). -h (mhux murija fl-eżempju) tippermetti l-kontroll tal-fluss tal-ħardwer (l-istess bħal ktajjen stati). 19200 hija r-rata baud. ttyS1 tfisser / dev / ttyS1 (COM2 f'MS-DOS). vt102 huwa t-tip ta 'terminal u dan il-getty jiffissa l-varjabbli ta' l-ambjent TERM għal dan il-valur. M'hemmx fajls ta 'konfigurazzjoni. Tip "init q" fuq il-linja tal-kmand wara l-editjar ta 'l-getty u għandek tara login fil-pront.

L-iskoperta awtomatika ta 'problemi ta' parità ta 'Agetty

Il-programm agetty jipprova jidentifika b'mod awtomatiku s-sett tal-parità fit-terminal (inkluż l-ebda parità). Ma jappoġġax bytes tad-data ta '8 bit flimkien ma' parità ta '1-bit. Ara l-bytes tad-data ta '8 bit (flimkien mal-parità). Jekk tuża stty biex tiffissa l-parità, agetty awtomatikament twaqqafha peress li inizjalment irid li l-bit ta 'parità jaqa' daqs li kieku kien daqsxejn ta 'data. Dan huwa għaliex jeħtieġ li tikseb l-aħħar ftit (possibbilment bit-parità) kif timmaġina l-isem tal-login sabiex tkun tista 'tiskopri l-parità awtomatikament. Għalhekk jekk tuża l-parità, ħalliha biss ġewwa t-terminal tat-test u ħallih agħtha tikxefha u poġġiha fil-kompjuter. Jekk it-terminal tiegħek jappoġġja l-parità riċevuta, il-pidda tal-login għandha tħares sewwa sakemm tiskjera xi ħaġa hekk li l-getty tkun tista 'tiskopriha

parità. Il-pront fil-legatura jiskoraġġixxi lill-viżitaturi, eċċ. Milli jippruvaw jidħlu. Dan jista 'jkun biss dak li trid.

Xi drabi hemm problema bl-iskoperta awtomatika tal-parità. Dan jiġri għaliex wara li l-ewwel int iddaħħal l- isem tal-login tiegħek, agetty jibda l-programm ta ' login biex jintemm il-qtugħ tiegħek. Sfortunatament, il-programm login ma jistax jiskopri parità hekk jekk il-programm getty ma rnexxilux jiddetermina l-parità allura login ma jkunx jista' jiddetermina hija jew. Jekk l-ewwel tentattiv ta 'login ifalli, id- dħul ser ihallik jerġa' jipprova, eċċ. (Kollha bil-parità ssettjata ħażin). Eventwalment, wara numru ta 'tentattivi falluti biex jidħlu (jew wara żmien ta' skadenza) agetty jerġgħu jibdew u jibdew is-sekwenzi tal-login għal darb'oħra. Ladarba getty jerġa 'jaħdem, jista' jkun kapaċi jiskopri l-parità fit-tieni tipprova hekk dak kollu jista 'mbagħad jaħdem OK.

Bil-parità ħażina, il-programm ta ' login ma jistax jaqra sewwa dak li ttajpja u ma tistax tidħol. Jekk it-terminal tiegħek jappoġġja l-parità riċevuta, inti tkompli tara skrin garred. Jekk getty jonqos milli jiskopri l-parità, / etc / issue file normalment ikun oġġett ta 'dumping għall-iskrin eżatt qabel il-pront, u għalhekk kliem aktar ħarir jistgħu jidhru fuq l-iskrin.

Għaliex ma tistax tinkiseb parità mill-ewwel ittra ttajpjata? Hawn hu eżempju: Ejja ngħidu li jiskopri byte ta '8 bit bit-daqs tal-parità tiegħu bit 0 (bit b'ħafna ordnijiet) u b'numru fard ta' 1-bits. X'parità hi? Ukoll, in-numru fard ta '1 bits jimplika li l-parità fard hija. Iżda jista 'jkun biss karattru ta' 8 bit mingħajr parità. M'hemm l-ebda mod s'issa biex jiġi determinat liema. Imma s'issa eliminajna l-possibbiltà ta 'parità uniformi. L-iskoperta tal-parità għalhekk tipproċedi bi proċess ta 'eliminazzjoni.

Jekk il-byte li jmiss ittajpjat huwa simili għall-ewwel wieħed u jelimina biss il-possibbiltà ta 'parità uniformi, għadu impossibbli li tiġi stabbilita l-parità. Din is-sitwazzjoni tista 'tkompli b'mod indefinit u f'każijiet rari l-login se jonqos sakemm tibdel is-login-name tiegħek. Jekk agetty jsib daqs ta 'parità ta' 1, se jassumi li dan huwa daqs ta 'parità u mhux bit ta' ordni għoli ta 'karattru ta' 8 bit. Għalhekk jassumi li ma tużax meta-karattri (sett bit għoli) fl-isem ta 'l-utent tiegħek (jiġifieri li ismek huwa f'ASCII).

Wieħed jista 'jidħol f' "linja ta 'l-aċċess" f'diversi modi. Ejja ngħidu li inti biss ittajpja ittra waħda jew tnejn għall-isem tal-login tiegħek u mbagħad hit return. Jekk dawn l-ittri mhumiex biżżejjed għal skoperta ta 'parità, allura l-login jibda qabel ma tkun instabet il-parità. Kultant din il-problema sseħħ jekk ma jkollokx it-terminal fuq u / jew meta tingħaqad meta tibda l-ewwel.

Jekk ikollok staġnati f'dan il-'login ta 'l-aċċess' mod 'il barra minnu huwa li tolqot il-buttuna tar-ritorn diversi drabi sakemm ikollok il-login ta' l-getty fil-pront. Mod ieħor huwa li tistenna ftit jew wisq ħin għal żmien ta 'skadenza. Imbagħad il-pejst tal-login ta 'getty jitqiegħed fuq l-iskrin mill-programm getty u tista' terġa 'tipprova tilloggja.

8 bytes tad-data ta 'bit (flimkien mal-parità)

Sfortunatament, agetty ma tistax tiskopri din il-parità. Sa mill-aħħar ta 'l-1999, m'għandha l-ebda għażla biex tiddiżattiva l-awtodiskrizzjoni tal-parità u b'hekk tiskopri parità mhux korretta. Ir-riżultat huwa li l-proċess tal-login ma jkunx iżolat u l-parità se tiġi żbaljata. Għalhekk ma jidhirx li huwa possibbli li wieħed jipprova juża data bytes ta '8 bit b'parità.

getty (parti minn getty_ps)

(Ħafna minn dan huwa mill-Qadim Serial-HOWTO minn Greg Hankins)
Għal dan il-getty wieħed jeħtieġ li ż-żewġ entrati jiddaħħlu f'fajl ta 'konfigurazzjoni u żid id-dħul f' / etc / inittab . Hawn huma xi entrati ta 'eżempju għall-użu għat-terminal tiegħek li tqiegħed fil-fajl tal-konfigurazzjoni / etc / gettydefs .

# 38400 bps Dumb Entratura terminali DT38400 # B38400 CS8 CLOCAL # B38400 SANE -ISISTRIP CLOCAL # @ S login: # DT38400 # 19200 bps Dumb Entratura terminali DT19200 # B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL # @ S login: # DT19200 # 9600 bps Dumb Entratura Terminal DT9600 # B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL # @ S login @: # DT9600

Innota li d-DT38400, DT19200, eċċ huma biss tikketti u għandhom ikunu l-istess li tuża f ' / etc / inittab .

Jekk trid, tista 'tagħmel affarijiet stampati b'ittri interessanti fil-pannell tal-login. Fl-eżempji tiegħi, għandi l-isem tas-sistema u l-linja serjali stampata. Tista 'żżid affarijiet oħra: [blockquote

dell = iva] @ B Il-kurrent (evalwat fil-ħin li tara l-@B) rata ta 'bps. @D Id-data kurrenti, f'MM / DD / YY. @L Il-linja serjali li magħha hemm mehmuża getty. @S L-isem tas-sistema. @ T Il-ħin attwali, f'HH: MM: SS (24 siegħa). @ U In-numru ta 'utenti ffirmati bħalissa. Din hija għadd tan-numru ta 'entrati fil-fajl / etc / utmp li għandhom qasam ut_name mhux null. @ V Il-valur ta 'VERSION, kif mogħti fil-fajl tad-defaults. Biex turi karattru wieħed "@", uża "@" jew "@@".

Meta tkun qed tagħmel l-editjar / etc / gettydefs , tista 'tivverifika li s-sintassi hija korretta billi tagħmel:

linux # getty -c / etc / gettydefs

Kun żgur li m'hemm l-ebda fajl ieħor ta ' konfigurazzjoni getty jew uugetty għall-port tas-serje li t-terminal tiegħek huwa mehmuż ma' tali ( /etc/default/{uu}getty.ttyS N jew /etc/conf.{uu}getty.ttyS N ) , minħabba li dan probabilment se jfixkel it-tmexxija ta ' getty fuq terminal. Neħħi dawk il-fajls konfliġġenti jekk joħorġu.

Ibdel il-fajl tiegħek / etc / inittab biex tmexxi l- getty fuq il-port tas-serje (billi tissostitwixxi l-informazzjoni korretta għall-ambjent tiegħek - port, veloċità u tip ta 'terminal awtomatiku):

S1: 23: respawn: / sbin / getty ttyS1 DT9600 vt100 go fiha linux # init q

Fuq dan il-punt, għandek tara login minnufih fit-terminal tiegħek. Jista 'jkollok tolqot ir-ritorn biex tikseb l-attenzjoni tat-terminal.

mgetty

Il- "m" stands għal modem. Dan il-programm huwa primarjament għal modems u sa minn nofs l-2000 jeħtieġ li jerġa 'jimtela biex jintuża għal terminals tat-test (sakemm ma tużax il-kontroll tal-fluss tal-ħardwer - u dak normalment jeħtieġ kejbil magħmul bl-idejn). Għad-dokumentazzjoni għal terminals konnessi direttament ara t-taqsima "Diretta" tal-manwal: mgetty.texi.

Ħares lejn l-aħħar linji ta ' /etc/mgetty/mgetty.config għal eżempju tal-konfigurazzjoni tagħha għal terminal. Sakemm ma tgħidx "toggle-dtr no" se taħseb li għandek modem u qatra (jiċħdu) il-pin DTR fuq il-PC f'attentat vain biex titranġa l-modem ineżistenti. B'kuntrast ma 'gettys oħra, mgetty mhux se jehmeż lil terminal sakemm xi ħadd ikollu xi ċavetta ta' dak it-terminal sabiex tkun taf tara? għat-terminal fil- quċċata jew ps sakemm jiġri dan. Iċ-zkuk fi / var / log / mgetty / jistgħu juru ftit messaġġi ta 'twissija li huma applikabbli biss għal modems li tista' tinjora.

Hawn hu eżempju tal-linja sempliċi li tpoġġi fi / etc / inittab:

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