14.1 Getty (izmantots / etc / inittab)
Ievads Getty
Lai ieslēgšanās process darbotos uz seriālā porta (un ar to pieslēgtu termināli), kad dators ieslēdzas (vai pārslēdz darbības līmeni), failā / etc / inittab jāievada getty komanda. Raidīšana no komandrindas var radīt problēmas (sk. Ja Getty palaiž no komandrindas: Programmas tiek pārtrauktas, lai redzētu, kāpēc). Getty iegūst TTY (termināli), kas iet. Katram terminālam nepieciešama sava getty komanda. Katrā / etc / inittab failā konsolē ir arī vismaz viena getty komanda. Atrodiet to un ielieciet Getty komandas reālos terminālus blakus tam. Šajā failā var būt izlasītas getty līnijas teksta termināliem, kas tiek komentēti, tādēļ viss, kas jums jādara, ir atcelt komentārus (noņemt vadošo #) un mainīt dažus argumentus.
Pieļaujamie argumenti ir atkarīgi no tā, kuru jūs izmantojat:Vislabāk tieši savienotiem termināļiem ir divi: Divi gettys vislabāk iezvanpieeja modemiem (izvairieties no tieši savienotajiem termināļiem) ir: Vienkārši gettys izmantot, ja jūs neizmantojat reālu teksta terminālu. Lielākā daļa Linux lietotāju izmanto vienu no šiem monitorā: Jūsu Linux izplatīšana var būt ar ps_getty vai agetty teksta termināliem. Daži sadalījumi netiek piegādāti. Diemžēl viņi to bieži sauc par "getty", tāpēc jums var būt nepieciešams noteikt, kurš no tiem jums ir, jo argumenti, kurus jūs ievietojat pēc tam, kad / etc / inittab atšķiras. Debian izmanto agetty (util-linux paketē). RedHat un Fedora izmantoja ps_getty, kas ir: ps_getty Kā pēdējais līdzeklis, lai mēģinātu noskaidrot, kurš jums ir, varat pārbaudīt tā izpildāmo kodu (parasti / sbin). ps_getty ir / etc / gettydefs iegults šajā kodā. Lai to meklētu, dodieties uz / sbin un ierakstiet:stīgas getty | grep getty Ja getty ir faktiski agetty, iepriekš nav nekas. Tomēr, ja jums ir agetty rakstīt:getty-hvajadzētu rādīt opcijas -hiLmw. Ja jums nav Getty vēlaties pārbaudīt citu sadali un ārzemnieks programma, kas konvertē starp RPM un Debian pakotnes. Avota kodu var lejupielādēt no Getty Software. Ja jūs neizmantojat modema vadības līnijas (piemēram, ja izmantojat tikai minimālo 3 vadītāju skaitu: pārsūtītu, saņemtu un kopēju signālu zemi), jums vajadzēja ļaut gettyam to zināt, izmantojot "vietējo" karodziņu. Šī formāts ir atkarīgs no tā, kuru jūs izmantojat. Pēc pieteikšanās jūs pamanīsit (izmantojot "top", "ps -ax" vai "ptree"), ka getty process vairs nedarbojas. Kas ar to notika? Kāpēc Getty atsāk atkal, ja jūsu apvalks tiek nogalināts? Lūk, kāpēc. Pēc tam, kad esat ievadījis savu lietotāja vārdu, Getty to aizņem un aicina pieteikšanās programmu, kurā norādīts jūsu lietotāja vārds. Getty process tiek aizstāts ar pieteikšanās procesu. Pieteikšanās process prasa jūsu paroli, pārbauda to un sāk jebkuru procesu, kas norādīts jūsu paroles failā. Šis process bieži ir bash apvalks. Ja tā, bash sāk un aizstāj pieteikšanās procesu. Ievērojiet, ka viens process aizstāj otru un ka bash apvalks process sākotnēji tika sākts kā getty process. Šīs sekas tiks paskaidrotas tālāk. Tagad / etc / inittab failā, getty ir paredzēts respawn (restart), ja nogalināti. Tas norāda uz līniju, kas aicina getty. Bet, ja bash čaula (vai pieteikšanās process) tiek nogalināts, getty respawns (restartē). Kāpēc Nu, gan pieteikšanās process, gan bash ir aizvietotāji Getty un mantot * Teksta termināla pamācības indekss signālu savienojumi nosaka to priekšteči. Faktiski, ja ievērojat informāciju, jūs ievērosiet, ka aizstāšanas procesam būs tāds pats procesa ID kā sākotnējais process. Tādējādi bash ir sava veida getty maskēt ar to pašu procesa ID numuru. Ja bash tiek nogalināts, tā ir tāpat kā getty tika nogalināts (kaut arī getty vairs nedarbojas). Tas rada Getty respawning. Kad viens pieslēdzas, visi šajā seriālā porta procesi tiek nogalināti, ieskaitot bash apvalku. Tas var notikt arī (ja tas ir iespējots), ja moduļa piliens DCD spriegumam tiek nosūtīts uz seriālo portu. Vai nu izkāpšana no DCD, tā kritums dos rezultātu. Var piespiest getty repawn, manuāli nogalinot bash (vai login), vai nu nospiežot k taustiņu utt, bet ar "top" vai ar "nogalināt" komandu. Jums, iespējams, būs nepieciešams to nogalināt ar signālu 9 (kuru nevar ignorēt). Jums parasti vajadzētu palaist getty no iekšpuses / etc / inittab nevis no komandrindas, vai arī dažas termināļa darbības var negaidīti apturēt (apturēt). Lūk, kāpēc (pārejiet pie nākamās sadaļas, ja kādēļ tas jums nav svarīgi). Ja jūs sākat getty, lai pateiktu ttyS1 no citas termināļa komandrindas, teiksim tty1, tad tam būs tty1 kā tā kontrolējošo terminālu, lai arī faktiskais terminālis, uz kuru tas darbojas, ir ttyS1. Tādējādi tam ir nepareizs vadības termināls. Bet, ja tas ir sākts inittab failā, tad tam būs ttyS1 kā kontrolējošo terminālu (pareizs). Kaut arī kontrolējošais termināls ir nepareizs, pieteikšanās ttyS1 darbojas labi (jo jūs sniedzāt ttyS1 kā arguments getty). Standarta ieejas un izejas iestatījums ir ttyS1, lai arī kontrolējošais terminālis paliek tty11. Citas ttyS1 palaistās programmas var mantot šo standarta ievade / izvade (kas ir savienota ar ttyS1), un viss ir kārtībā. Bet dažas programmas var radīt kļūdu, mēģinot lasīt no to kontrolējošā terminālā (tty1), kas ir nepareizs. Tagad tty1 var domāt, ka šīs programmas fiksē tty1, tāpēc mēģinājums lasīt no tty1 (tam vajadzēja būt ttyS1) pārtrauc procesu, kurš mēģināja lasīt. (Fona process nav atļauts lasīt no tā kontrolējošā terminālā.). Jūs varat redzēt ziņu: "1 + pārtraukta"uz ekrāna. Šajā brīdī jūs esat iestrēdzis, jo jūs nevarat mijiedarboties ar procesu, kas mēģina sazināties ar jums, izmantojot nepareizu terminālu. Protams, lai izvairītos no tā, jūs varat doties uz citu termināli un nogalināt procesu utt. . Rindas piemērs / etc / inittab:
S1 ir no ttyS1. 23 nozīmē, ka getty tiek palaists, ieejot palaišanas līmeņos 2 vai 3. Respawn nozīmē, ka, ja killty (vai process, kas to aizstāja, piemēram, bash) tiek nogalināts, getty automātiski uzsāks (respawn) atkal. / sbin / getty ir getty komanda. -L nozīmē Vietējie (ignorēt modema vadības signālus). -h (nav parādīts piemērā) ļauj aparatūras plūsmas vadībai (tāda pati kā stty crtscts). 19200 ir bodu ātrums. ttyS1 nozīmē / dev / ttyS1 (COM2 MS-DOS). vt102 ir termināla tips, un šis getty iestatīs vides vērtību TERM uz šo vērtību. Nav konfigurācijas failu. Ievadiet "init q" komandrindā pēc Getty rediģēšanas, un jums vajadzētu redzēt pieteikšanās uzvedni. The agetty programma mēģinās automātiski noteikt paritātes iestatījumu termināļa iekšienē (ieskaitot bez paritātes). Tas neatbalsta 8 bitu datu bitus plus 1 bitu paritāti. Skatiet 8 bitu datu bitus (plus paritāte). Ja jūs izmantojat stty noteikt paritāti, agetty automātiski atiestatīs to, jo sākotnēji tā vēlas, lai paritātes bits nonāktu tā, it kā tas būtu datu bits. Tas ir tāpēc, ka, ievadot savu pieteikumvārdu, tam ir jāiegūst pēdējais bits (iespējams, paritātes bits), lai tas varētu automātiski noteikt paritāti. Tādējādi, ja jūs izmantojat paritāti, iespējojiet to tikai teksta termināļa iekšienē un ļaut agetty automātiski atklāt to un iestatīt to pie datora. Ja jūsu termināls atbalsta saņemto paritāti, pieteikšanās uzvedne izskatīsies izkropļota, kamēr neesat ierakstījis kaut ko tādu, lai getty varētu atklāt paritāte. Nepareiza uzvedne atturēsies no apmeklētāju utt., Mēģinot pieteikties. Tas varētu būt tieši tas, ko vēlaties. Dažkārt rodas problēmas ar paritātes automātisko noteikšanu. Tas notiek tāpēc, ka pēc tam, kad vispirms ievadāt savu pieteikšanās vārdu, agetty sākas Pieslēgties programma, kas pabeidz tevi ieiet. Diemžēl Pieslēgties programma nevar noteikt paritāti, tādēļ, ja getty programmā nav izdevies noteikt paritāti Pieslēgties arī to nevarēs noteikt. Ja pirmais pieteikšanās mēģinājums neizdodas, Pieslēgties ļaus jums izmēģināt vēlreiz utt. (viss ar nepareizu iestatīto paritāti). Galu galā, pēc vairākiem mēģinājumiem mēģināt pieteikties (vai pēc taimauta) agetty atkal sāksies un vispirms sāksies pieteikšanās virknes. Kad Getty atkal darbojas, tas var noteikt otra izmēģinājuma paritāti, lai viss varētu darboties pareizi. Ar nepareizu paritāti, Pieslēgties programma nevar pareizi izlasīt to, ko jūs rakstāt, un jūs nevarat pieteikties. Ja jūsu termināls atbalsta saņemto paritāti, jūs turpināsit redzēt izkropļotu ekrānu. Ja Getty nespēj atklāt paritāti, / etc / issue fails parasti tiek izmests ekrānā tieši pirms ātrās uzvednes, tāpēc ekrānā var parādīties vairāk izkropļoti vārdi. Kāpēc nevar uzzināt paritāti ar pirmo ievadīto burtu? Piemērs: pieņemsim, ka tas atpazīst 8 bitu baitu ar tā paritātes bitu 0 (augstā secības bits) un ar nepāra skaitu 1 bitu. Kāda ir paritāte? Nu, nepāra skaits 1 bits nozīmē, ka tas ir nepāra paritāte. Bet tas var arī būt tikai 8 bitu raksturs bez paritātes. Nav tā, lai noteiktu, kurš. Bet līdz šim mēs esam likvidējuši pat līdzības iespēju. Tātad paritātes noteikšana tiek veikta ar likvidēšanas procesu. Ja nākamais ievadītais baits ir līdzīgs pirmajam, un tas arī novērš pat līdzības iespēju, joprojām nav iespējams noteikt paritāti. Šī situācija var turpināties uz nenoteiktu laiku, un retos gadījumos login netiks veikts, kamēr neesat mainījis savu pieteikšanās vārdu. Ja agetty atradīs paritātes bit 1, tā pieņems, ka tas ir paritātes bit, nevis augstā secībā bit 8-bitu raksturs. Tādējādi tiek pieņemts, ka savā lietotāja vārdā neizmanto meta-rakstzīmes (augstu bitu kopu) (t.i., jūsu vārds ir ASCII). Var iekļūt "login loop" dažādos veidos. Pieņemsim, ka jūs ievadāt tikai vienu vai divus burtus savam lietotājvārdam un pēc tam atgriezieties. Ja šie burti nepietiekami, lai noteiktu paritāti, tad pieteikšanās sākas pirms ir atrasta paritāte. Dažreiz šī problēma rodas, ja jums nav termināļa un / vai savienojuma, kad agetty pirmo reizi palaiž. Ja jūs esat iestrēdzis šajā "pieteikšanās cilpa", izeja no tā ir vairākas reizes hit atgriešanās taustiņu, līdz jūs saņemat Getty pieteikšanās uzvedni. Vēl viens veids ir vienkārši pagaidīt minūti, vai nu par taimautu. Tad getty pieteikšanās uzvedni tiks ievietota ekrānā ar getty programmu, un jūs varat mēģināt vēlreiz pieteikties. Diemžēl agetty nevar noteikt šo paritāti.1999. gada beigās nav iespējas atspējot paritātes automātisko noteikšanu, tādējādi atklājot nepareizu paritāti. Rezultāts ir tāds, ka pieteikšanās process tiks izkropļots un paritāte tiks iestatīta nepareizi. Tādējādi šķiet neiespējami mēģināt izmantot 8 bitu datu bitus ar paritāti. (Lielākā daļa no tā ir no vecā Serial-HOWTO, ko iesniedza Gregs Hankins)Par šo getty ir nepieciešams gan ievietot ierakstus konfigurācijas failā un pievienot ierakstu collas / etc / inittab. Tālāk ir sniegti daži piemēri ierakstiem, ko izmantot savam terminālim, kuru ievietojāt konfigurācijas failā / etc / gettydefs.
Ņemiet vērā, ka DT38400, DT19200 utt. Ir tikai etiķetes, un tām jābūt tādām pašām kā jūs izmantojat / etc / inittab. Ja vēlaties, varat veikt getty drukāt interesantas lietas login banner. Manos piemēros esmu uzrakstījis sistēmas nosaukumu un sērijas līniju. Jūs varat pievienot citas lietas: blockquote ēnā = jā
Kad esat pabeidzis rediģēšanu / etc / gettydefs, jūs varat pārbaudīt, vai sintakse ir pareiza:
Pārliecinieties, ka nav cita getty vai uugetty seriālā porta konfigurācijas fails, ka jūsu terminālis ir pievienots kā (/etc/default/{uu}getty.ttySN vai /etc/conf.{uu}getty.ttySN), jo tas, visticamāk, traucēs darboties getty terminālā. Noņemiet šos konfliktējošos failus, ja tie iziet. Rediģējiet savu / etc / inittab fails palaist getty par seriālo portu (aizvietojot pareizu informāciju par jūsu vidi - ostas, ātruma un noklusējuma termināla tips):
Šajā brīdī jūsu terminālā vajadzētu redzēt pieteikšanās uzvedni. Jums, iespējams, būs jāatgriežas, lai saņemtu termināļa uzmanību. "M" apzīmē modemu. Šī programma galvenokārt paredzēta modemiem, un no 2000. gada vidus tā būs jāpārklasificē, lai to lietotu teksta termināliem (ja vien jūs neizmantojat aparatūras plūsmas kontroli - un parasti tam ir nepieciešams rokām darāms kabelis). Attiecībā uz tieši pieslēgto termināļu dokumentāciju skatiet rokasgrāmatas sadaļu "Tiešais": mgetty.texi. Apskatiet pēdējās līnijas /etc/mgetty/mgetty.config piemēram, konfigurējot to terminālim. Ja vien jūs neesat teicis "toggle-dtr no", tas domās, ka datoram ir modems un piliens (noliegts) DTR kontakttīkls, kas velti mēģina atiestatīt neeksistējošu modemu. Atšķirībā no citiem saņemtajiem pakalpojumiem, mgetty nepievienosies termināļiem, kamēr kāds noklikšķinās uz jebkura šī termināla taustiņa, lai jūs redzētu? termināļa iekšpusē tops vai ps kamēr tas nenotiek. Žurnāli / var / log / mgetty / var parādīt dažus brīdinājuma ziņojumus, kas attiecas tikai uz modēmiem, kurus jūs varat ignorēt. Šeit ir vienkāršās rindas piemērs, kuru jūs ievietojāt / etc / inittab:
Getty aiziet pēc pieteikšanās (un to var atjaunot)
Ja getty palaiž no komandrindas: Programmas tiek pārtrauktas
agetty (var tikt nosaukts getty)
S1: 23: respawn: / sbin / getty -L 19200 ttyS1 vt102 Agetty paritate problēmu automātiska noteikšana
8 bitu datu biti (plus paritāte)
getty (daļa getty_ps)
mgetty













