Text-Terminals sa Linux

14.1 Getty (gigamit sa / etc / inittab)

Pasiuna sa Getty

Aron adunay proseso sa pag-login modagan sa usa ka serial port (ug ang terminal nga konektado niini) kon ang computer magsugod (o switch level run) ang usa ka getty nga command kinahanglan ibutang sa / etc / inittab file. Ang pagpadagan sa getty gikan sa command line mahimong hinungdan sa mga problema (tan-awa Kon ang getty nagdagan gikan sa command line: Ang mga programa mihunong aron makita kung ngano). Si Getty nakakuha sa TTY (usa ka terminal) nga moadto. Ang matag terminal nagkinahanglan sa iyang kaugalingong getty command. Adunay usab labing menos usa ka getty command alang sa console sa matag / etc / inittab file. Pangitaa kini ug ibutang ang mga command sa getty alang sa tinuod nga mga terminal sunod niini. Kini nga file mahimong adunay sample nga mga linya sa getty para sa mga terminal sa teksto nga gikomentaryo aron ang tanan nga imong kinahanglan nga buhaton mao ang pag-uncomment kanila (kuhaa ang nag-unang #) ug usba ang pipila ka mga argumento.

Ang mga argumento nga gitugutan nagdepende sa imong gigamit:
Ang duha ka labing maayo alang sa direkta nga konektado nga mga terminal mao ang:

Duha ka mga labing maayo alang sa dial-in modem (paglikay alang sa direkta nga konektado nga mga terminal) mao ang:

Simple nga mga gamit aron dili gamiton ang tinuod nga text-terminal. Kadaghanan sa mga tiggamit sa Linux naggamit sa usa niini sa ilang monitor:

Ang imong pag-apud-apod sa Linux mahimong moabut uban sa ps_getty o agetty para sa mga text-terminal. Ang uban nga mga distribusyon wala. Ikasubo, sila sa kasagaran nagtawag lamang niini nga "getty" aron kinahanglan nimo nga mahibal-an kung kinsa nga imong naangkon sukad nga ang mga argumento nga imong gibutang human niini sa / etc / inittab magkalahi. Gigamit ni Debian ang agetty (sa pakete sa util-linux). Ang RedHat ug Fedora migamit sa ps_getty nga anaa sa: ps_getty

Ingon nga usa ka katapusan nga paagi sa pagsulay sa pagtino kung diin ang imong gikuha, mahimo nimo nga susihon ang iyang code sa executable (kasagaran sa / sbin). ps_getty adunay / etc / gettydefs nga gisudlan niini nga code. Sa pagpangita niini, adto sa / sbin ug type:
mga kuldas gikuha | grep getty
Kon ang getty sa pagkatinuod agetty sa ibabaw dili moresulta. Apan kung adunay agetty typing:
getty -h
kinahanglan ipakita ang mga kapilian [-hiLmw].

Kung wala nimo ang getty nga gusto nimo nga susihon ang ubang mga distribusyon ug ang langyaw nga programa sa pag-convert sa tali sa RPM ug Debian. Ang source code mahimong ma-download gikan sa Getty Software.

Kung dili ka magamit ang modem control lines (pananglitan kung gamiton ang minimum nga gidaghanon 3 nga konduktor: pagpasa, pagdawat, ug komon nga signal ground) kinahanglan nga imong mahibal-an kini pinaagi sa paggamit sa "lokal" nga bandila. Ang format niini nag-agad kung asa nga imong gigamit.

Getty exits human sa login (ug mahimo respawn)

Human sa imong pag-log in makamatikod ka (pinaagi sa paggamit sa "top", "ps -ax", o "ptree") nga ang proseso sa getty dili na magdagan. Unsay nahitabo niini? Ngano nga ang getty magsugod pag-usab kon ang imong kabhang gipatay? Ania ang hinungdan.

Human nimo isulat ang ngalan sa imong user, gikuha kini ni getty ug gitawag ang programa sa pag-login nga nagsulti niini sa imong ngalan sa user. Ang proseso sa getty gipulihan sa proseso sa pag-login. Ang proseso sa pag-login mangutana sa imong password, susihon kini ug magsugod bisan unsa nga proseso ang natino sa file sa imong password. Kini nga proseso kasagaran ang bash shell. Kon mao, magsugod ang bash ug mopuli sa proseso sa pag-login. Hinumdomi nga ang usa ka proseso nagpuli sa lain ug nga ang proseso sa bash shell nagsugod sa proseso nga getty. Ang mga implikasyon niini mahimong ipasabut sa ubos.

Karon sa / etc / inittab nga file, gikuha ang getty (restart) kung gipatay. Nag-ingon kini sa linya nga nagtawag sa getty. Apan kung ang patayng bangaw (o ang proseso sa paglihok) gipatay, gikinahanglan ang pag-restart. Ngano? Aw, ang proseso sa pag-login ug bash mao ang mga kapuli sa pagkuha ug pagpanunod

* Text Terminal How-To Index

ang signal koneksyon nga gitukod sa ilang mga gisundan. Sa pagkatinuod kon imong gitan-aw ang mga detalye nga imong mamatikdan nga ang kapuli nga proseso adunay parehas nga proseso ID sama sa orihinal nga proseso. Busa ang bash usa ka matang sa getty sa pagtakoban nga adunay sama nga proseso sa numero sa ID. Kon ang bash gipatay kini sama lang sa pagkamatay nga gipatay (bisan pa wala na magdagan). Kini moresulta sa respitning.

Sa diha nga ang usa mag-log out, ang tanan nga mga proseso sa serial nga serial gipatay lakip ang bash shell. Mahimo usab kini mahitabo (kon mahimo) kung ang usa ka hangup signal ipadala ngadto sa serial port pinaagi sa usa ka drop sa DCD boltahe sa modem. Ang pag-logout o pag-drop sa DCD magresulta sa pagkadawat sa respirasyon. Ang usa mahimong magpugos sa getty nga respawn pinaagi sa paagi sa pagpatay sa bash (o pag-login) pinaagi sa pag-igo sa k key, ug uban pa samtang sa "top" o sa "pagpatay" nga sugo. Ikaw lagmit kinahanglan nga patyon kini uban ang signal 9 (nga dili mahimong ibalewala).

Kon ang getty modagan gikan sa command line: Ang mga programa nahunong

Kinahanglan nga ikaw kasagaran modagan getty gikan sa sulod / etc / inittab ug dili gikan sa command line o kung dili ang uban nga mga programa nga nagdagan sa terminal mahimo nga wala damha nga gisuspinde (mihunong). Mao kini ang hinungdan (lakaw ngadto sa sunod nga seksyon kung ang hinungdan nganong dili importante kanimo). Kung magsugod ka sa getty sa pag-ingon ttyS1 gikan sa command line sa laing terminal, sulti tty1, nan kini adunay tty1 ingon sa iyang "controlling terminal" bisan kung ang aktwal nga terminal nga iyang gisubay mao ang ttyS1. Busa kini adunay sayup nga pagkontrol sa terminal. Apan kon kini nagsugod sa sulod sa inittab file unya kini adunay ttyS1 ingon nga ang pagkontrol nga terminal (husto).

Bisag sayop ang pagkontrol sa terminal, ang pag-login sa ttyS1 maayo ang gibuhat (tungod kay imong gihatag ang ttyS1 isip argumento sa getty). Ang standard input ug output gipahimutang sa ttyS1 bisan pa ang kontrolado nga terminal nagpabilin nga tty11. Ang uban pang mga programa nga nagdagan sa ttyS1 mahimong makapanunod sa kini nga standard input / output (nga konektado sa ttyS1) ug ang tanan OK ra. Apan ang uban nga mga programa mahimong makahimo sa sayop nga pagsulay sa pagbasa gikan sa ilang pagkontrol sa terminal (tty1) nga sayup. Karon tty1 tingali maghunahuna nga kini nga mga programa gipadagan sa luyo pinaagi sa tty1 busa usa ka pagsulay sa pagbasa gikan sa tty1 (kini kinahanglan nga ttyS1) moresulta sa pagpahunong sa proseso nga misulay sa pagbasa. (Ang proseso sa background dili tugutan sa pagbasa gikan sa kontrolado nga terminal.). Mahimo nimo makita ang usa ka mensahe nga sama niini: " [1] + Mihunong " sa screen. Niini nga punto ikaw giugbok tungod kay dili ka makauban sa usa ka proseso nga naningkamot sa pagpakigsulti kanimo pinaagi sa sayup nga terminal. Siyempre aron makalikay gikan niini mahimo ka nga moadto sa laing terminal ug patyon ang proseso, ug uban pa.

agetty (mahimong ginganlan og getty)

Usa ka linya sa panig-ingnan sa / etc / inittab:

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

Ang S1 gikan sa ttyS1. 23 nagpasabot nga ang getty run sa pagsulod sa lebel 2 o 3. respawn nagpasabot nga kung ang getty (o usa ka proseso nga mipuli niini sama sa bash) ang gipatay, ang getty awtomatikong magsugod (respawn) pag-usab. / sbin / getty mao ang getty nga sugo. Ang -L nagpasabot sa Lokal (ibalewala ang signal sa pagkontrol sa modem). -h (wala gipakita sa panig-ingnan) makahimo sa pagkontrol sa agianan sa hardware (sama sa stty crtscts). Ang 19200 mao ang baud rate. Ang ttyS1 nagpasabot / dev / ttyS1 (COM2 sa MS-DOS). Ang vt102 mao ang matang sa terminal ug kining getty mopahimutang sa variable nga TERM niini nga bili. Walay mga file sa pagsumpo. Isulat ang "init q" sa command line human sa pag-edit sa getty ug kinahanglan nimo nga makita ang usa ka prompt nga pang-login.

Agetty & # 39; s auto-pagkakita sa mga problema sa parity

Ang agetty nga programa mosulay sa pagtuki dayon sa parity set sulod sa terminal (lakip na ang walay parity). Wala kini pagsuporta sa 8-bit data byte plus 1-bit parity. Tan-awa ang 8-bit data bytes (plus parity). Kon mogamit ka ug stty aron ma-set parity, ang agetty awtomatik nga dili kini mausab tungod kay sa sinugdanan gusto nga ang panaghiusa nga gamay nga moabut pinaagi sa ingon nga kini usa ka gamay nga kasayuran. Kini tungod kay kini gikinahanglan nga makuha ang katapusan nga bit (posible nga usa ka kaayohan sa parity) samtang imong i-type ang imong login-name aron kini makahimo sa pag-detect sa pagkapareha. Busa kon mogamit ka sa pagkapareha, pasabta lang kini sulod sa text-terminal ug tuguti kini nga makit-an dayon kini ug ibutang kini sa computer. Kon ang imong terminal nagsuporta sa pagkapareha, ang agi sa pag-login makita tan-awon hangtud nga imong ma-type ang usa ka butang aron makit-an ang getty sa

pagkapareha. Ang garbled aghat makapugong sa mga bisita, ug uban pa gikan sa pagsulay sa pag-login. Mao kana ang imong gusto.

Adunay usahay usa ka suliran sa pagkapili sa pagkapareha sa awto. Kini mahitabo tungod kay human sa una mong pag-type ang imong login nga ngalan, ang agetty magsugod sa login nga programa aron tapuson ang imong pag-log in. Kasubo, ang programa sa pag-login dili makamatikod sa pagkapareha aron kung ang programa nga getty napakyas sa pagtino sa parity nan dili makasiguro ang pag- login kini usab. Kon ang unang pagsulod sa paningkamot napakyas, ang pag-login mohatag kanimo sa pagsulay pag-usab, ug uban pa. (Ang tanan nga adunay parity nga sayop). Sa kadugayan, human sa daghang mapakyas nga mga paningkamot sa pag-login (o human sa usa ka timeout) agetty magsugod na usab ug magsugod na usab ang login sequences. Sa higayon nga ang getty nagdagan pag-usab, kini mahimong makamatikod sa pagkapareha sa ikaduha nga pagsulay aron ang tanan mahimo dayon nga buhaton OK.

Uban sa sayop nga pagkapareha, ang programa sa pag-login dili husto nga mabasa kung unsa ang imong gisulat ug dili ka maka-log in. Kung ang imong terminal nga gisuportahan ang nakadawat sa pagkapareha, ikaw magpadayon sa pagtan-aw sa usa ka garbled screen. Kon ang getty dili makakaplag sa parity ang usa ka / etc / issue nga file kasagaran dumped ngadto sa screen sa wala pa ang sa atubangan sa prompt, aron ang dugang nga mga garbled nga mga pulong mahimo nga makita sa screen.

Ngano nga dili mahibal-an ang pagkapili sa parity sa unang sulat nga gi-type? Aniay usa ka pananglitan: Ibutang kuno kini nga 8-bit byte uban sa iyang parity bit 0 (high-order bit) ug uban sa usa ka gidak-on nga gidaghanon nga 1-bits. Unsa man ang pagkapareha niini? Aw, ang dili maihap nga gidaghanon sa 1 ka bits nagpasabot nga kini dili parehas nga pagkapareha. Apan kini mahimo usab nga usa ka 8-bit nga kinaiya nga walay pagkapareha. Wala nay paagi aron mahibal-an kung kinsa. Apan hangtod karon wala namo mapapas ang posibilidad bisan sa pagkapareha. Ang pagkakita sa pagkaparehas sa ingon nagpadayon pinaagi sa usa ka proseso sa elimination.

Kung ang gisulat nga sunod nga byte susama sa una ug makawagtang lamang sa posibilidad nga bisan ang parity, imposible gihapon nga matino ang parity. Kini nga sitwasyon mahimong magpadayon hangtod sa hangtod ug sa mga talagsa nga mga kaso mahimo nga mapakyas ang pag-login hangtud nga mausab nimo ang imong login-name. Kung ang agetty makakaplag sa usa ka parity bit sa 1 kini maghunahuna nga kini mao ang usa ka panaghiusa bit ug dili usa ka taas nga-order gamay sa usa ka 8-bit nga kinaiya. Busa naghunahuna nga dili nimo gamiton ang mga meta-character (high bit set) sa imong user name (ie nga ang imong pangalan anaa sa ASCII).

Ang usa mahimong mosulod sa usa ka "loop loop" sa daghang mga paagi. Pananglitan nga mag-type ka lamang sa usa ka letra o duha alang sa imong ngalan sa pagparehistro ug dayon i-klik ang pagbalik. Kung kini nga mga sulat dili igo alang sa pagkapareha sa parity, dayon ang pag-login modagan sa wala pa mahibal-an ang parity. Usahay kini nga problema mahitabo kon wala nimo ang terminal sa ug / o konektado kung magsugod ang agetty.

Kon nahigot ka sa "log-in" nga usa ka paagi gikan niini mao ang pag-igo sa return key sa daghang mga higayon hangtud nga makuha nimo ang getty login prompt. Ang laing paagi mao ang paghulat sa usa ka minuto o labaw pa alang sa usa ka timeout. Unya ang getty login prompt ibutang sa screen pinaagi sa getty program ug mahimo nimong sulayan pag-usab ang pag-log in.

8-bit data bytes (plus parity)

Sa kasubo, ang agetty dili makamatikod niini nga parity. Hangtud sa ulahing bahin sa 1999 wala'y kapilian ang pagputol sa auto-detection sa pagkapareha ug sa ingon makakita sa sayup nga pagkapareha. Ang sangputanan mao nga ang proseso sa paglihok malaw-ay ug ang pagkapareha magkasayop. Busa kini dili mahimo sa pagsulay sa paggamit sa 8-bit nga datos bytes nga adunay parity.

getty (bahin sa getty_ps)

(Kadaghanan niini gikan sa karaang Serial-HOWTO ni Greg Hankins)
Alang niini gikinahanglan ang usa nga kinahanglan ibutang ang entries sa usa ka configuration file ug idugang ang usa ka entry sa / etc / inittab . Ania ang pipila ka panig-ingnan nga mga entry nga gamiton alang sa imong terminal nga imong gibutang sa configuration file / etc / gettydefs .

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

Hinumdomi nga ang DT38400, DT19200, ug uban pa mga labels ug kinahanglan nga mao ra ang imong gamiton sa / etc / inittab .

Kon gusto nimo, makahimo ka nga makuhaan og mga makaikag nga butang sa login banner. Sa akong mga ehemplo, ako adunay sistema sa ngalan ug ang serial line nga giimprinta. Mahimo nimong idugang ang ubang butang: [blockquote

landong = oo] @ B Ang kasamtangan (gibana-bana sa panahon nga ang @ B nakita) bps rate. @ D Ang kasamtangan nga petsa, sa MM / DD / YY. @ L Ang serial line diin gikuha ang getty. @S Ang sistema sa ngalan. @ T Ang kasamtangan nga panahon, sa HH: MM: SS (24-oras). @ U Ang gidaghanon sa kasamtangan nga gipirmahan nga mga tiggamit. Kini usa ka ihap sa gidaghanon sa mga entries sa / etc / utmp file nga adunay usa ka field nga dili null null. @ V Ang bili sa VERSION, ingon nga gihatag sa defaults file. Aron ipakita ang usa ka '@' nga karakter, gamit ang '@ @' o '@@'.

Sa dihang nahuman ka pag-edit / etc / gettydefs , mahimo nimong susihon nga husto ang syntax pinaagi sa pagbuhat:

linux # getty -c / etc / gettydefs

Siguroha nga walay laing getty o uugetty config file alang sa serial port nga ang imong terminal gilakip sama sa ( /etc/default/{uu}getty.ttyS N o /etc/conf.{uu}getty.ttyS N ) , tungod kay kini tingali makababag sa runningty sa terminal. Kuhaa ang mga magkasumpaki nga mga file kon sila mogawas.

I-edit ang imong / etc / inittab file aron sa pagpadagan sa getty sa serial port (pag-ilis sa husto nga kasayuran alang sa imong palibot - port, speed, ug default terminal type):

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

Niini nga punto, imong makita ang usa ka prompt nga pang-login sa imong terminal. Mahimo nga imong maigo ang pagbalik aron makuha ang pagtagad sa terminal.

mgetty

Ang "m" nagpasabot sa modem. Kini nga programa alang sa mga modemo ug sa tunga-tunga sa 2000 kini nagkinahanglan nga mag-recompile nga gamiton kini alang sa mga text-terminals (gawas kon gamiton nimo ang pagkontrol sa agianan sa hardware - ug kini kasagaran nagkinahanglan og usa ka hinimo nga hinay nga kable). Alang sa dokumentasyon alang sa direktang konektado nga mga terminal makita ang "Direct" nga seksyon sa manwal: mgetty.texi.

Tan-awa ang katapusang linya sa /etc/mgetty/mgetty.config alang sa panig-ingnan sa pag-configure niini alang sa terminal. Gawas kon moingon ka nga "toggle-dtr no" kini maghunahuna nga ikaw adunay modem ug ihulog (negate) ang DTR pin sa PC sa usa ka kawang nga pagsulay sa pag-reset sa dili anaa nga modem. Sukwahi sa ubang mga gettys, ang mgetty dili maglakip sa usa ka terminal hangtud nga adunay usa ka tawo nga makakita sa bisan unsa nga yawe niana nga terminal aron imong makita ang usa? alang sa terminal sa ibabaw o ps hangtud nga kini mahitabo. Ang mga troso sa / var / log / mgetty / mahimong magpakita sa pipila ka mga pasidaan nga mga mensahe nga magamit lamang sa mga modem nga mahimo nimong ibalewala.

Ania ang usa ka pananglitan sa yano nga linya nga imong gibutang sa / etc / inittab:

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