Tèks-Terminals sou Linux

14.1 Geti (itilize nan / etc / inittab)

Entwodiksyon nan Geti

Yo nan lòd yo gen yon pwosesis login kouri sou yon pò seri (ak tèminal la ki konekte nan li) lè òdinatè a kòmanse moute (oswa switch nivo kouri) dwe yon lòd Getty dwe mete nan dosye a / etc / inittab. Kouri getty soti nan liy lan lòd ka lakòz pwoblèm (gade Si getty kouri soti nan liy lòd: Pwogram jwenn sispann yo wè poukisa). Geti GETs yon TTY (yon tèminal) prale. Chak tèminal bezwen lòd pwòp Getty li yo. Genyen tou omwen yon lòd Getty pou konsole a nan chak / etc / inittab dosye. Jwenn sa a epi mete kòmandman yo getty pou tèminal yo reyèl pwochen nan li. Dosye sa a ka gen ladan liy echantiyon liy letty pou tèminal tèks ke yo kòmante soti pou ke tout sa ou bezwen fè se dekonprim yo (retire dirijan la #) ak chanje kèk agiman.

Agiman yo ki pèmèt yo depann sou ki getty ou itilize:
De gettys pi bon pou tèminal ki konekte dirèkteman yo se:

De gettys ki pi bon pou rele-nan modèm (evite pou tèminal ki konekte dirèkteman) yo se:

Gettys senp yo sèvi ak si ou pa sèvi ak yon tèks tèminal reyèl. Pifò itilizatè Linux sèvi ak youn nan sa yo nan kontwole yo:

Distribisyon Linux ou ka vini ak swa ps_getty oswa agi pou tèminal tèminal yo. Gen kèk distribisyon bay ni. Malerezman, yo souvan jis rele li "getty" pou ou ka bezwen detèmine ki yon sèl ou gen depi agiman yo ou mete apre li nan / etc / inittab diferan. Debian sèvi ak agi (nan pake a util-linux). RedHat ak Fedora te itilize ps_getty ki se nan: ps_getty

Kòm yon dènye rekò pou eseye detèmine ki getty ou genyen, ou ta ka tcheke soti kòd ègzèkutabl li yo (anjeneral nan / sbin). ps_getty gen / etc / gettydefs entegre nan kòd sa a. Pou fè rechèch pou li, ale nan / sbin ak kalite:
strings getty | grep getty
Si getty se aktyèlman agi pi wo a la pral lakòz nan pa gen anyen. Sepandan si ou gen tape agouti:
getty -h
ta dwe montre opsyon [-hiLmw].

Si ou pa gen Geti a ou vle tcheke lòt distribisyon ak pwogram etranje a konvèti ant pakè RPM ak Debian. Ka kòd la sous dwe telechaje soti nan Getty Software.

Si ou pa itilize liy kontwòl modèm (pa egzanp si ou itilize sèlman kantite minimòm 3 kondiktè: transmèt, resevwa, ak tè siyal komen) ou ta dwe kite getty konnen sa a lè l sèvi avèk yon "lokal" drapo. Fòma sa a depann sou ki getty ou itilize.

Getty sòti apre login (epi yo ka repouse)

Apre ou fin antre nan ou pral avi (lè ou itilize "tèt", "ps-max", oswa "ptree") ke pwosesis la getty pa kouri ankò. Ki sa ki rive li? Poukisa getty rekòmanse ankò si yo kase ou? Men poukisa.

Apre ou tape nan non itilizatè ou an, Geti pran li epi li rele pwogram nan login ki di li non itilizatè ou an. Pwosesis la getty ranplase pa pwosesis la login. Pwosesis la login mande pou modpas ou, chèk li epi li kòmanse tou sa pwosesis se espesifye nan dosye modpas ou. Pwosesis sa a se souvan kokiy la bach. Si se konsa, bash kòmanse ak ranplase pwosesis login la. Remake byen ke yon pwosesis ranplase yon lòt e ke pwosesis la koki bach orijinal te kòmanse kòm pwosesis la getty. Enplikasyon sa yo pral eksplike anba a.

Koulye a, nan dosye a / etc / inittab, getty sipoze repwann (rekòmanse) si yo te touye. Li di konsa sou liy lan ki rele getty. Men, si koki an bash (oswa pwosesis la login) mouri, getty respawn (rdemaraj). Poukisa? Oke, tou de pwosesis la login ak bach yo ranplasman pou Geti ak eritye

* Tèks tèminal Kijan Pou Index

koneksyon yo siyal etabli pa chèf anvan yo. An reyalite si ou obsève detay yo ou pral remake ke pwosesis ranplasman an ap gen idantite menm pwosesis la kòm pwosesis orijinal la. Se konsa bach se sòt de getty nan degize ak menm nimewo ID pwosesis la. Si frape touye li se jis tankou Geti te mouri (menm si getty pa kouri ankò). Sa a rezilta nan respeksyon getty.

Lè yon sèl mòso bwa soti, tout pwosesis yo sou ki pò seri yo te touye ki gen ladan koki a bash. Sa a ka rive tou (si pèmèt) si yon siyal hangup voye nan pò a seri pa yon gout DCD vòltaj pa modèm la. Swa logout la oswa gout nan DCD pral rezilta nan respeksyon getty. Youn ka fòse getty pou repouse pa manyèlman touye bash (oswa login) swa pa frape kle a k, elatriye pandan ke yo nan "tèt" oswa ak "touye" lòd la. Ou pral gen anpil chans bezwen touye li ak siyal 9 (ki pa ka inyore).

Si Geti kouri soti nan liy lòd: Pwogram jwenn sispann

Ou ta dwe nòmalman kouri getty soti nan andedan / etc / inittab epi yo pa soti nan liy la lòd oswa lòt ka kèk pwogram kouri sou tèminal la ka sanzatann sispann (sispann). Men poukisa (ale nan seksyon kap vini an si rezon an pa enpòtan pou ou). Si ou kòmanse getty pou di ttyS1 soti nan liy lan lòd nan yon lòt tèminal, di tty1, Lè sa a, li pral gen tty1 kòm li yo "kontwole tèminal" menm si tèminal aktyèl la li kouri sou se ttyS1. Se konsa, li gen mal kontwole tèminal la. Men, si li te kòmanse anndan dosye a inittab Lè sa a, li pral gen ttyS1 kòm tèminal la kontwole (kòrèk).

Menm si tèminal la kontwole se sa ki mal, login la nan ttyS1 ap travay amann (depi ou te bay ttyS1 kòm yon agiman Getty). D 'estanda a ak pwodiksyon yo mete ttyS1 menm si tèminal la kontwole rete tty11. Lòt pwogram kouri nan ttyS1 ka eritye sa a opinyon estanda / pwodiksyon (ki se ki konekte nan ttyS1) ak tout bagay se OK. Men, kèk pwogram ka fè erè nan ap eseye li soti nan tèminal kontwole yo (tty1) ki se sa ki mal. Koulye a, tty1 ka panse ke pwogram sa yo yo te kouri nan background nan pa tty1 konsa yon tantativ li nan tty1 (li ta dwe yo te ttyS1) rezilta nan kanpe pwosesis la ki te eseye li. (Yon pwosesis background pa pèmèt li soti nan tèminal kontwole li yo.). Ou ka wè yon mesaj tankou: " [1] + Sispann " sou ekran an. Nan pwen sa a ou ap kole depi ou pa ka kominike avèk yon pwosesis ki ap eseye kominike avèk ou atravè tèminal la mal. Natirèlman yo sove soti nan sa a ou ka ale nan yon lòt tèminal ak touye pwosesis la, elatriye.

agi (yo ka rele getty)

Yon liy egzanp nan / etc / inittab:

S1: 23: repons: / sbin / getty-L ​​19200 ttyS1 vt102

S1 se nan ttyS1. 23 vle di ke getty kouri sou k ap antre nan nivo kouri 2 oswa 3. repons vle di ke si getty (oswa yon pwosesis ki ranplase li tankou bach) mouri, getty pral otomatikman kòmanse (repouse) ankò. / sbin / getty se lòd la getty. -L vle di lokal (inyore siyal kontwòl modèm). -h (pa montre nan egzanp lan) pèmèt kontwòl koule kenkayri (menm jan ak krtskt stty). 19200 se pousantaj la baud. ttyS1 vle di / dev / ttyS1 (COM2 nan MS-DOS). vt102 se tip tèminal la ak sa a Geti pral mete varyab anviwònman TERM a sa a valè. Pa gen okenn dosye konfigirasyon. Tape "init q" sou liy la bay lòd apre yo fin koreksyon Getty, epi ou ta dwe wè yon èd memwa login.

Agetty & # 39; s oto-deteksyon nan pwoblèm parit

Pwogram agi a ap eseye oto-detekte parite a mete andedan tèminal la (ki gen ladan pa gen okenn parite). Li pa sipòte done 8-bit bytes plis 1-bit parit. Gade 8-bit done bytes (plis parite). Si ou sèvi ak stty yo mete parity, agi pral otomatikman rache li depi li okòmansman vle ti jan nan parite vini rive tankou si li te yon ti jan done. Sa a se paske li bezwen jwenn ti jan nan dènye (petèt yon ti jan parite) jan ou tape non login ou a konsa ke li ka oto-detekte parit. Se konsa, si ou itilize parite, pèmèt li sèlman andedan tèks-tèminal la epi kite agi otomatik-detekte li, li mete l 'nan òdinatè a. Si sipò tèminal ou a sipòte resevwa parite, èd memwa a ap gade blese jiskaske ou tape yon bagay pou ke getty ka detekte la

parite. Èd memwa a ap dekouraje vizitè yo, elatriye nan ap eseye konekte. Sa ta ka jis sa ou vle.

Gen pafwa yon pwoblèm ak deteksyon oto nan égalité. Sa rive paske apre ou fin premye kalite non login ou a, agi kòmanse pwogram nan konekte fini fini antre nan Malerezman, pwogram nan login pa ka detekte égalité Se konsa, si pwogram nan getty echwe pou pou detèmine parit la Lè sa a, login pa yo pral kapab detèmine li swa. Si tantativ nan login premye echwe, login ap kite ou eseye ankò, elatriye (tout ak mete nan parite mal). Evantyèlman, apre yon kantite tantativ echwe pou konekte (oswa apre yon poz) agi pral kòmanse ankò epi yo kòmanse sekans yo login tout lòt peyi sou ankò. Yon fwa getty ap kouri ankò, li ka kapab detekte parite a sou dezyèm lan eseye konsa tout bagay ka Lè sa a, travay OK.

Avèk parite ki mal, pwogram nan konekte pa ka kòrèkteman li sa ou tape epi ou pa ka antre nan. Si tèminal ou a sipòte resevwa égalité, ou pral kontinye wè yon ekran arbore. Si getty echwe pou detekte égalité yon / etc / pwoblèm dosye anjeneral yo jete ekran an jis anvan anvan la èd memwa a, konsa plis mo garbled ka parèt sou ekran an.

Poukisa pa ka agi detekte parit pa lèt la premye tape? Isit la nan yon egzanp: Sipoze li detekte yon byte 8-bit ak ti jan parite li yo 0 (gwo lòd ti jan) ak yon nimewo enpè nan 1-Bits. Ki sa li ye? Oke, nimewo a enpè nan 1 Bits implique ke li nan parite enpè. Men, li ta ka jis jis yon karaktè 8-bit ki pa gen okenn parite. Pa gen okenn fason twò lwen pou detèmine ki. Men, byen lwen tèlman nou te elimine posibilite pou menm égalité. Deteksyon an nan parite konsa montan pa yon pwosesis pou eliminasyon.

Si pwochen byte tape a menm jan ak yon sèl nan premye epi tou li sèlman elimine posiblite pou menm parit, li la toujou enposib detèmine parit. Sitiyasyon sa a ka kontinye endefiniman ak nan ka ki ra konekte ap fail jiskaske ou chanje login login ou. Si agi jwenn yon ti jan parite nan 1 li pral asime ke sa a se yon ti jan parite epi yo pa yon ti jan wo-lòd nan yon karaktè 8-bit. Se konsa, sipoze ke ou pa itilize meta-karaktè (segondè seri ti) nan non itilizatè ou an (sa vle di ke non ou se nan ASCII).

Youn ka jwenn nan yon "bouk login" nan divès fason. Sipoze ou sèlman tape yon lèt sèl oswa de pou non login ou ak Lè sa a, frape retounen. Si lèt sa yo pa ase pou deteksyon parite, Lè sa a, kouri kouri anvan parite yo te detekte. Pafwa pwoblèm sa a rive si ou pa gen tèminal la sou yo ak / oswa konekte lè ajetty premye kòmanse moute.

Si ou jwenn kole nan sa a "bouk konekte" yon fason soti nan li se frape kle a retounen plizyè fwa jiskaske ou jwenn login nan getty èd. Yon lòt fason se jis rete tann yon minit oswa konsa pou yon poz. Lè sa a, login promo èd memwa a ap mete sou ekran an pa pwogram nan getty epi ou ka eseye ankò nan ouvri sesyon an.

8 bytes done bytes (plis égalité)

Malerezman, agi pa ka detekte sa a égalité. Kòm nan 1999 an reta li pa gen okenn opsyon pou enfimite oto-deteksyon an nan parite e konsa ap detekte parite kòrèk. Rezilta a se ke pwosesis la login ap malad epi yo pral parite dwe mete mal. Se konsa, li pa sanble posib pou yo eseye itilize 8-bit done bytes ak égalité.

getty (yon pati nan getty_ps)

(Pifò nan sa a se soti nan fin vye granmoun Serial-HOWTO a pa Greg Hankins)
Pou sa a getty yon sèl bezwen tou de mete antre nan yon dosye konfigirasyon epi ajoute yon antre nan / etc / inittab . Men kèk antre egzanp pou itilize pou tèminal ou ke ou mete nan dosye a konfigirasyon / elatriye / gettydefs .

# 38400 bps Dumb Tèminal antre DT38400 # B38400 CS8 CLOCAL # B38400 SANTE -ISTRIP CLOCAL # @ S @L login: # DT38400 # 19200 bps Dumb Tèminal antre DT19200 # B19200 CS8 CLOCAL # B19200 SANS -ISTRIP CLOCAL # @ S @L login: # DT19200 # 9600 bps Dumb Tèminal antre DT9600 # B9600 CS8 CLOCAL # B9600 SANS -ISTRIP CLOCAL # @ S @L login: # DT9600

Remake byen DT38400, DT19200, elatriye yo se jis etikèt epi yo dwe menm bagay la ke ou itilize nan / etc / inittab .

Si ou vle, ou ka fè getty enprime bagay enteresan nan banyè la login. Nan egzanp mwen, mwen gen non an sistèm ak liy seri a enprime. Ou ka ajoute lòt bagay: [blockquote

lonbraj = wi] @B Aktyèl la (evalye nan moman @B la wè) bps pousantaj. @ D Dat aktyèl la, nan MM / DD / YY. @L Liy seri a ki se tache. @S Non sistèm lan. @ T Tan aktyèl la, nan HH: MM: SS (24 èdtan). @U Kantite itilizatè ki te siyen kounye a. Sa a se yon konte sou kantite antre nan dosye a / etc / utmp ki gen yon jaden ut_name ki pa-nil. @ V Valè VÈSYON, jan yo bay nan dosye défaut la. Pou montre yon sèl '@' karaktè, sèvi ak swa '\ @' oswa '@@'.

Lè w ap fè koreksyon / etc / gettydefs , ou ka verifye ke sentaks la kòrèk nan fè:

linux # getty -c / elatriye / gettydefs

Asire w ke pa gen okenn lòt getty oswa uugetty config dosye pou pò a seri ki tèminal ou a atache a tankou ( /etc/default/{uu}getty.ttyS N oswa /etc/conf.{uu}getty.ttyS N ) , tankou sa a pral pwobableman entèfere ak kouri getty sou yon tèminal. Retire dosye sa yo konfli si yo sòti.

Edit dosye / etc / inittab ou a nan kouri getty sou pò a seri (ranplase nan enfòmasyon ki kòrèk la pou anviwònman ou - pò, vitès, ak kalite tèminal default):

S1: 23: repons: / sbin / getty ttyS1 DT9600 vt100 nan li linux # inite q

Nan pwen sa a, ou ta dwe wè yon èd memwa sou tèminal ou an. Ou ka oblije frape retounen nan jwenn atansyon tèminal la.

mgetty

"M" a kanpe pou modèm. Pwogram sa a se premyèman pou modèm ak nan mitan lane 2000 li pral mande pou recompiling yo sèvi ak li pou tèminal tèminal (sòf si ou itilize kontwòl koule kenkayri - epi ki anjeneral mande pou yon kab men-te fè). Pou dokiman an pou tèminal ki konekte dirèkteman, gade seksyon "dirèk" nan manyèl la: mgetty.texi.

Gade nan liy ki sot pase yo nan /etc/mgetty/mgetty.config pou yon egzanp nan konfigirasyon li pou yon tèminal. Sòf si ou di "toggle-dtr non" li pral panse ke ou gen yon modèm ak gout (negate) PIN nan DTR nan PC a nan yon tantativ gremesi reset modèm ki pa-inexistant. Kontrèman ak lòt gettys, mgetty pa pral tache tèt li nan yon tèminal jiskaske yon moun frape nenpòt ki kle nan tèminal konsa ou pral wè yon? pou tèminal la nan tèt ou ps jouk sa rive. Mòso bwa yo nan / var / log / mgetty / ka montre yon mesaj avètisman kèk ki yo, se sèlman aplikab a modèm ki ou ka inyore.

Isit la nan yon egzanp nan liy ki senp ou mete nan / etc / inittab:

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