Nakala-Mwisho kwenye Linux

14.1 Getty (kutumika katika / nk / inittab)

Utangulizi wa Getty

Ili kuwa na mchakato wa kuingilia unatumika kwenye bandari ya saruji (na terminal imeshikamana nayo) wakati kompyuta inapoanza (au switches ngazi ya kukimbia) amri ya getty lazima kuwekwa katika / etc / inittab faili. Kukimbia kwa mstari kutoka kwenye mstari wa amri kunaweza kusababisha matatizo (angalia ikiwa ufikiaji unatokana na mstari wa amri: Programu zinasimamishwa ili kuona nini). Getty GETs TTY (terminal) inakwenda. Kila terminal inahitaji amri yake ya kupata. Pia kuna angalau amri moja ya kupata kwa console kila faili / nk / inittab. Pata hili na kuweka amri ya getty kwa vituo halisi karibu navyo. Faili hii inaweza kuwa na mistari ya getty ya sampuli ya vituo vya maandishi ambazo zinafafanuliwa ili kila unahitaji kufanya ni kuwazuia (kuondoa uongozi #) na ubadili hoja kadhaa.

Majadiliano ambayo inaruhusiwa hutegemea nio gani unayotumia:
Gettys mbili bora kwa vituo vya kushikamana moja kwa moja ni:

Vipimo viwili bora vya modems za kupiga simu (kuepuka kwa vituo vya kushikamana moja kwa moja) ni:

Gettys rahisi kutumia ikiwa hutumii maandishi halisi ya maandishi. Watumiaji wengi wa Linux hutumia mojawapo ya haya kwa kufuatilia yao:

Usambazaji wako wa Linux unaweza kuja na ps_getty aidha au agetty kwa vituo vya maandishi. Baadhi ya usambazaji hawapati. Kwa bahati mbaya, mara nyingi huita tu "ufikiaji" ili uweze kuhitaji kuamua ni nani uliyo nayo kutokana na hoja unazoweka baada ya / etc / inittab tofauti. Debian hutumia agetty (katika paket ya util-linux). RedHat na Fedora walitumia ps_getty ambayo iko: ps_getty

Kama mapumziko ya mwisho ya kujaribu kuamua ni kipi ambacho una, unaweza kuangalia kanuni yake inayoweza kutekelezwa (kwa kawaida in / sbin). ps_getty ina / nk / gettydefs iliyoingia kwenye msimbo huu. Ili kuutafuta, nenda kwa / sbin na aina:
masharti getty | grep kupata
Ikiwa uke ni kweli hasira haijastahili. Hata hivyo ikiwa unashusha agetty:
mke -h
lazima kuonyesha chaguo [-hiLmw].

Ikiwa huna ufikiaji unataka kuangalia mgawanyiko mwingine na programu ya mgeni kubadilisha mfuko wa RPM na Debian. Nambari ya chanzo inaweza kupakuliwa kutoka Programu ya Getty.

Ikiwa hutumii mistari ya udhibiti wa modem (kwa mfano ikiwa unatumia idadi ndogo ya waendeshaji 3: kuhamisha, kupokea, na ishara ya kawaida ya ardhi) unapaswa kuruhusu kupata habari hii kwa kutumia bendera "ya ndani". Fomu ya hii inategemea ufikiaji gani.

Getty inatoka baada ya kuingia (na inaweza kurejesha)

Baada ya kuingia ndani utaona (kwa kutumia "juu", "ps -ax", au "ptree") kwamba mchakato wa getty haifanyi tena. Nini kilichotokea? Kwa nini mtoto huanza upya tena ikiwa shell yako inauawa? Hii ndiyo sababu.

Baada ya kuandika jina lako la mtumiaji, getty inachukua na kupiga programu ya kuingilia akiiambia jina lako la mtumiaji. Utaratibu wa kupata nafasi hubadilishwa na mchakato wa kuingia. Mchakato wa kuingilia unauliza nenosiri lako, linalichunguza na huanza mchakato wowote uliowekwa katika faili yako ya nenosiri. Utaratibu huu mara nyingi ni shell shell. Ikiwa ndivyo, bash kuanza na kuchukua nafasi ya mchakato wa kuingia. Kumbuka kuwa mchakato mmoja unabadilisha mwingine na kwamba mchakato wa shell shell awali ulianza kama mchakato wa kupata. Matokeo ya hii yatasemwa hapa chini.

Sasa katika faili / nk / inittab, getty inapaswa kuanza upya (kuanzisha upya) ikiwa imeuawa. Inasema hivyo juu ya mstari unaoitwa kupata. Lakini kama shell shell (au mchakato wa kuingilia) inauawa, restywns (upungufu). Kwa nini? Haya, mchakato wa kuingilia na bash ni nafasi ya kupata nafasi na kurithi

* Nakala Terminal Jinsi-To Index

uhusiano wa ishara ulioanzishwa na watangulizi wao. Kwa hakika ukitambua maelezo utaona kuwa mchakato wa uingizaji utakuwa na ID ya mchakato sawa na mchakato wa awali. Kwa hivyo bash ni aina ya kupata kwa kujificha na nambari ya utambulisho wa mchakato huo. Ikiwa bash ni kuuawa ni kama uhaba uliuawa (ingawa kupata sio kukimbia tena). Hii inasababisha upungufu wa kupata.

Wakati mmoja akipiga nje, taratibu zote za bandari hiyo ya serial huuawa ikiwa ni pamoja na shell shell. Hii inaweza pia kutokea (ikiwa imewezeshwa) ikiwa ishara ya hangup inapelekwa kwenye bandari ya majaribio kwa tone la DCD voltage na modem. Aidha kuingia au kuacha katika DCD itasaidia kupata upya. Mtu anaweza kulazimisha kupata upya kwa bash (kwa kuingia) au kupiga kifaa kikali, nk wakati "juu" au kwa amri ya "kuua". Huenda unahitaji kuua kwa signal 9 (ambayo haiwezi kupuuzwa).

Ikiwa runty inatokana na mstari wa amri: Programu zinasimamishwa

Unapaswa kawaida kukimbia kupata kutoka ndani / nk / inittab na si kutoka mstari wa amri au mwingine mipango ya mbio juu ya terminal inaweza kuwa bila kutarajia kusimamishwa (kusimamishwa). Hii ndiyo sababu (ruka kwenye sehemu inayofuata ikiwa ni kwa nini sio muhimu kwako). Ikiwa unapoanza kupata nafasi ya kusema ttyS1 kutoka kwenye mstari wa amri ya terminal nyingine, sema tty1, basi itakuwa na tty1 kama "terminal ya kudhibiti" ingawa terminal halisi inaendeshwa ni ttyS1. Kwa hiyo ina terminal isiyo sahihi ya kudhibiti. Lakini ikiwa imeanza ndani ya faili ya inittab basi itakuwa na ttyS1 kama terminal ya kudhibiti (sahihi).

Ingawa kituo cha kudhibiti ni sahihi, kuingilia kwenye ttyS1 inafanya kazi nzuri (kwa kuwa umetoa ttyS1 kama hoja ya kupata). Pembejeo na matokeo ya kawaida huwekwa kwa ttyS1 hata kama terminal inayoendelea inabaki tty11. Programu nyingine zinazoendesha ttyS1 zinaweza kurithi pembejeo / pato hili la kawaida (linalounganishwa na ttyS1) na kila kitu ni sawa. Lakini baadhi ya mipango inaweza kufanya kosa la kujaribu kusoma kutoka kwa terminal yao ya kudhibiti (tty1) ambayo ni sahihi. Sasa tty1 anaweza kufikiria kwamba programu hizi zinaendeshwa nyuma na tty1 hivyo jaribio la kusoma kutoka tty1 (inafaa kuwa ttyS1) matokeo katika kuacha mchakato uliojaribu kusoma. (Mchakato wa historia hairuhusiwi kusoma kutoka kwenye kituo chake cha kudhibiti). Unaweza kuona ujumbe kama vile: " [1] + Aliacha " kwenye skrini. Kwa hatua hii unakumbwa tangu huwezi kuingiliana na mchakato unaojaribu kuwasiliana nawe kupitia terminal isiyo sahihi. Bila shaka kukimbia kutoka kwa hili unaweza kwenda kwenye terminal nyingine na kuua mchakato, nk.

agetty (inaweza kuitwa jina)

Mstari wa mfano katika / nk / inittab:

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

S1 inatoka kwa ttyS1. 23 inamaanisha kwamba kupata upungufu unatumika juu ya kuingia ngazi ya kukimbia 2 au 3. ina maana ya kuwa kama kupata (au mchakato ambao ulibadilishana kama bash) unauawa, pesa itaanza moja kwa moja (respawn) tena. / sbin / getty ni amri ya kupata. The -L ina maana Mitaa (kupuuza ishara za kudhibiti modem). -h (sioonyeshwa katika mfano) huwezesha udhibiti wa mtiririko wa vifaa (sawa na mchoro wa stty). 19200 ni kiwango cha baud. ttyS1 ina maana / dev / ttyS1 (COM2 katika MS-DOS). vt102 ni aina ya terminal na hii ya ziada itaweka TERM variable ya mazingira kwa thamani hii. Hakuna faili za usanidi. Weka "init q" kwenye mstari wa amri baada ya kuharibu kupata na unapaswa kuona haraka kuingia.

Agetty & # 39; s auto-kugundua matatizo ya usawa

Programu ya agetti itajaribu auto kuchunguza usawa uliowekwa ndani ya terminal (ikiwa ni pamoja na usawa wowote). Haiunga mkono vidokezo vya data 8-bit pamoja na usawa wa 1-bit. Angalia byte za data 8-bit (pamoja na usawa). Ikiwa unatumia usawa ili kuweka usawa, agetty itaifungua moja kwa moja tangu mwanzoni unataka uwiano kidogo uje kama kama ni data kidogo. Hii ni kwa sababu inahitaji kupata kidogo ya mwisho (labda uwiano bit) unapopanga jina lako login ili iweze kuamua uwiano. Hivyo ikiwa unatumia usawa, uwawezesha ndani ya maandishi-terminal na basi acetty auto-kuchunguza na kuiweka kwenye kompyuta. Ikiwa terminal yako inasaidia kupokea usawa, haraka ya kuingilia itaonekana imefungwa hadi unapopanga kitu ili kupata kupata

usawa. Mwisho wa haraka utawazuia wageni, nk kutoka kujaribu kuingia. Hiyo inaweza kuwa kile unachotaka.

Kuna wakati mwingine tatizo na kutambua auto ya usawa. Hii hutokea kwa sababu baada ya kuandika jina lako login la kwanza, agetty inapoanza mpango wa kuingia ili kumaliza kuingia kwako. Kwa bahati mbaya, programu ya kuingilia haiwezi kuchunguza usawa ili mpango wa getty ulishindwa kuamua usawa basi kuingilia akaunti hautaweza kuamua ama. Ikiwa jaribio la kwanza la kuingilia linashindwa, kuingia kwako utakuwezesha tena, nk (wote walio na usawa wanapotoka vibaya). Hatimaye, baada ya majaribio kadhaa ya kushindwa kuingia (au baada ya muda wa kuacha ) agetty itaanza tena na kuanza utaratibu wa kuingiliana tena. Mara baada ya kupata tena, inaweza kuchunguza usawa kwenye jaribio la pili ili kila kitu kiweze kufanya kazi sawa.

Kwa usawa usiofaa, mpango wa kuingilia hawezi kusoma kwa usahihi kile unachokiandika na huwezi kuingia. Ikiwa terminal yako inasaidia usawa uliopokea, utaendelea kuona skrini iliyopigwa. Ikiwa ufikiaji hauwezi kugundua usawa faili / nk / suala la kawaida hupelekwa kwenye skrini kabla ya kabla ya haraka, hivyo maneno zaidi yanaweza kuonekana kwenye skrini.

Kwa nini hawezi kugundua ushujaa kwa barua ya kwanza iliyochapishwa? Hapa ni mfano: Tuseme inagundua byte ya 8-bit na uwiano wake bit 0 (high-order bit) na kwa idadi isiyo ya kawaida ya bits 1. Ni usawa gani? Naam, idadi isiyo ya kawaida ya bits 1 inaashiria kuwa ni usawa usio wa kawaida. Lakini pia inaweza kuwa tu tabia ya 8-bit bila usawa. Hakuna njia mbali sana ya kuamua ni. Lakini hadi sasa tumeondoa uwezekano wa hata usawa. Kugundua usawa hivyo hupatikana kwa mchakato wa kuondoa.

Ikiwa tote ijayo imewekwa sawa na ya kwanza na pia inachukua uwezekano wa hata usawa, bado haiwezekani kuamua usawa. Hali hii inaweza kuendelea kwa muda usiojulikana na katika hali ya kawaida ya kuingilia akaunti itashindwa mpaka uweze kubadilisha jina lako login. Ikiwa agetty hupata kidogo ya usawa wa 1 itadhani kwamba hii ni kidogo ya usawa na sio ya juu ya utaratibu wa tabia ya 8-bit. Kwa hivyo hufikiri kwamba hutumii meta-wahusika (juu kuweka kidogo) katika jina lako la mtumiaji (yaani jina lako ni katika ASCII).

Mtu anaweza kuingia "kitanzi cha kuingilia" kwa njia mbalimbali. Tuseme wewe tu aina ya barua moja au mbili kwa jina lako login na kisha hit kurudi. Ikiwa barua hizi hazitoshi kwa kutambua usawa, kisha kuingilia kuingia kabla ya usawa imepatikana. Wakati mwingine tatizo hili hutokea ikiwa huna terminal na / au kushikamana wakati agetty kwanza kuanza.

Ikiwa unakabiliwa katika "kitanzi cha kuingilia" hiki njia ya kutosha ni kugonga ufunguo wa kurudi mara kadhaa mpaka unapoingia haraka kuingia. Njia nyingine ni kusubiri dakika au hivyo kwa muda. Kisha uingizaji wa haraka wa kuingia utawekwa kwenye skrini na mpango wa kupata na unaweza kujaribu tena kuingilia.

Vita 8 vya data (pamoja na usawa)

Kwa bahati mbaya, agetty haiwezi kuchunguza usawa huu. Kufikia mwishoni mwa mwaka wa 1999 hauna chaguo la kuzuia kujisikia auto kwa usawa na hivyo utaona usawa usio sahihi. Matokeo ni kwamba mchakato wa kuingilia utakuwa umewekwa na usawa utawekwa vibaya. Kwa hiyo haionekani iwezekanavyo kujaribu kutumia kutumia data ya 8-bit na usawa.

getty (sehemu ya getty_ps)

(Zaidi ya hii ni kutoka kwa zamani ya Serial-HOWTO na Greg Hankins)
Kwa hii ya kupata moja inahitaji kuingiza mafaili yote katika faili ya usanidi na kuongeza kuingizwa kwenye / nk / inittab . Hapa ni baadhi ya maingilio ya mfano ya kutumia kwa terminal yako ambayo unaweka katika faili ya usanidi / nk / gettydefs .

# 38400 bps Dumb Mwisho wa kuingilia DT38400 # B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL # @ S @L kuingia: # DT38400 # 19200 bps Dumb Kuingia kwa muda mrefu DT19200 # B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL # @ S @L kuingia: # DT19200 # 9600 bps Dumb Mwisho wa kuingia DT9600 # B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL # @ S @L kuingia: # DT9600

Kumbuka kuwa DT38400, DT19200, nk ni maandiko tu na lazima iwe sawa na unavyotumia / nk / inittab .

Ikiwa unataka, unaweza kufanya vitu vichapishaji vya kuvutia kwenye bendera ya kuingia. Katika mifano yangu, nina jina la mfumo na mstari wa serial umechapishwa. Unaweza kuongeza mambo mengine: [blockquote

kivuli = ndiyo] @B sasa (kupimwa wakati @B inavyoonekana) kiwango cha bps. @D tarehe ya sasa, katika MM / DD / YY. @L Mstari wa serial ambao upatikanaji wa nyongeza unaunganishwa. @S Jina la mfumo. @T wakati wa sasa, katika HH: MM: SS (saa 24). @U Idadi ya watumiaji walioingia saini. Hii ni hesabu ya kuingia kwenye faili / nk / utmp ambayo ina uwanja usio wa null ut_name. @V Thamani ya VERSION, kama inavyopatikana katika faili ya kufutwa. Ili kuonyesha tabia moja ya '@', tumia '\ @' au '@@'.

Unapofanywa uhariri / nk / gettydefs , unaweza kuthibitisha kwamba syntax ni sahihi kwa kufanya:

linux # getty -c / nk / gettydefs

Hakikisha hakuna faili nyingine ya ufikiaji au uugetty kwa bandari ya serial ambayo terminal yako imeunganishwa na vile vile ( /etc/default/{uu}getty.ttyS N au /etc/conf.{uu}getty.ttyS N ) , kwa kuwa hii huenda ikaingilia kati kwa kupata runti kwenye terminal. Ondoa mafaili hayo yanayolingana ikiwa yanatoka.

Badilisha faili yako / nk / inittab ili kukimbia kupata kwenye bandari ya serial (uingie katika habari sahihi kwa mazingira yako - bandari, kasi, na aina ya terminal ya mwisho):

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

Kwa hatua hii, unapaswa kuona haraka kuingilia kwenye terminal yako. Unaweza kugonga kurudi ili uangalie terminal.

mgetty

"M" inasimama kwa modem. Mpango huu ni hasa kwa modems na kama wa katikati ya 2000 itahitaji kurejea ili kuitumia kwa vituo vya maandishi (isipokuwa ukitumia udhibiti wa mtiririko wa vifaa - na kwa kawaida huhitaji cable iliyofanywa mkono). Kwa nyaraka za vituo vya kushikamana moja kwa moja tazama sehemu "ya moja kwa moja" ya mwongozo: mgetty.texi.

Angalia mistari ya mwisho ya /etc/mgetty/mgetty.config kwa mfano wa kuimarisha kwa terminal. Isipokuwa unasema "toggle-dtr hapana" itafikiri kuwa una modem na tone (kupuuza) siri ya DTR kwenye PC kwa jaribio la bure la kurekebisha modem isiyopo. Tofauti na upatikanaji mwingine, mgetty haitajishughulisha na terminal mpaka mtu atakapopiga ufunguo wowote wa terminal hiyo ili utaona? kwa terminal katika juu au PS mpaka hii inatokea. Vitambulisho katika / var / log / mgetty / vinaweza kuonyesha ujumbe mfupi wa onyo ambao hutumika tu kwenye modems ambazo unaweza kupuuza.

Hapa ni mfano wa mstari rahisi unaoweka katika / nk / inittab:

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