Text-Terminals op Linux

14.1 Getty (benotzt an / etc / inittab)

Aféierung an Getty

Fir e Login-Prozess op engem seriellen Port ze hunn (an de Terminal ass verbonne mat deem) wann de Computer ufänkt (oder Schalter Run Levels) muss en Kommando Getty muss an d'/ etc / inittab-Datei gesat ginn. Getty aus der Kommandozeilung kann Problemer verursaachen (kuckt Wann getty aus Kommandozeilung lafen: Programme verstoppt fir ze kucken firwat). Getty GETs en TTY (en Terminal) goen. All Termin brauch säin eegene Getty-Kommando. Et gëtt och mindestens e Getty-Kommando fir d'Konsole an all / etc / inittab-Datei. Hei fannt Dir déi Getty-Kommandoen fir déi richteg Klempen niewend se. Dëse Fichier kann d'Getty-Zeilen awer fir Textendminuten enthalen, fir datt Dir alles braucht fir ze kommentéieren ass (d'Haaptleit #) a verännert e puer Argumenter.

Déi Argumenter, déi erlaabt sinn hänkt vun deem Getty Dir benotzt:
Zwee Gettys am beschten fir direkt verbonne Klempen:

Zwee Gettys am beschte fir Dial-in Modems (vermeide fir direkt verbonne Klempen) sinn:

Einfach Gettys ze benotzen wann Dir kee richteg Text-Terminal benotzt. Déi meescht Linux-Benotzer benotze vun engem vun dësen op de Monitor:

Är Linux Verdeelung kënnt entweder mat ps_getty oder agetty fir Text-Terminals. E puer Distributiounen hunn keng. Leider si se nëmmen "Getty" nennen, sou datt Dir misst bestëmmen wat Dir hutt zënter d'Argumenter, déi Dir no der et / etc / inittab ënnerscheet hunn. Debian benotzt agetty (am util-linux Package). RedHat an Fedora benotzt ps_getty déi op: ps_getty

Als leschten Ausgank, fir ze bestëmmen wat Getty Dir hutt, kënnt Dir de ausbezuelbaren Code (normalerweis an / sbin) kucken. ps_getty huet / etc / gettydefs an dëse Code. Fir no Sich nozekucken, gitt op / dobaussen an Typ:
Saach Getty | grep getty
Wann de Getty tatsächlech agett, gëtt d'Erklärung näischt. Wann Dir awer agitt typesch:
getty -h
soll d'Optiounen [-hiLmw] weisen.

Wann Dir net de Getty wëllt Dir wëllt aner Distributiounen an de Alien Programm fir Konvertéierung tëscht RPM an Debian Paketen. De Quellcode kann tëscht Getty Software heruntergelooss ginn.

Wann Dir keng Modem Kontrollleitungen benotzt (zB wann Dir nëmmen d'Mindestanz vun 3 Leedere benotzt: Sende, Empfang a gemeinsame Signalgewiicht) sollt Dir getty dat kennen andeems Dir eng "lokale" Flagge hutt. De Format vun deem hänkt vun deem wéi getty Dir benotzt.

Getty hëlt no Login (a kënnt réagéieren)

Nodeems Dir Iech aloggen, kënnt Dir bemierken (andeems Dir "Top", "ps -ax" oder "ptree" benotzt) datt de Getty-Prozess net méi lafen. Wat ass mam geschitt? Firwat gitt d'Wieder erneiert wann Är Schuel ëmbruecht ginn ass? Hei ass et.

Nodeems Dir Äert Benotzernumm type hutt, getty hëlt et an de Loginprogramm nennt et de Benotzernumm. De Gettycht ass duerch de Loginsystem ersat. De Login-Prozess kënnt op Äert Passwuert, kontrolléiert et a fänkt ëmmer of, wat de Prozess an Äert Passwuert-Datei spezifizéiert ass. Dëse Prozess ass oft de Schlofkellet. Wann et sou ass, start et de Login Login Prozess ersat. Bedenkt datt een Prozess eng aner ersetzt an datt de Bash-Shell-Prozess ursprénglech als Getty-Prozess ugefaangen huet. D'Auswierkungen vun dësem gëtt erkläert ënner.

Elo an der / etc / inittab-Datei, getty soll respektéieren (restart) wann et ëmkomm ass. Si seet sou sou d'Linn, déi getty getty. Awer wann de Bach Shell (oder de Login Login) ëmbruecht ass, getty respektéiert (restarts). Firwat? Ma och, de Login-Prozess an de Bash ginn Ersatz fir Getty a Besëtz

* Text-Terminal-How-To-Index

déi Signalverbindunge mat hire Virgänger festleeën. Tatsächlech wann Dir déi Detailer behalen, kënnt Dir feststellen datt den Ersatzungsprozess déi selwecht Prozedur ID huet wéi de ursprénglechen Prozess. Esou ass Stréie vun der Getty am Verkleedunge mat der selweschter Prozessnummer. Wann de Kascht ëmkomm ass, ass et just wéi Getty gouf ëmgewandelt (och wann d'Getty net méi geet). Dëst Resultat a Getty z'erhéijen.

Wann een erausfonnt, all déi Prozesser op deem serialen Hafen, wéi de Bach Shell, ëmbruecht ginn. Dëst kann och geschéien (wann aktivéiert) wann en Hangup Signal an de serialen Hafen duerch e Réckgang vun der DCD Spannung vum Modem gesandt gëtt. Entweder de Logout oder de Réckgang vun der DCD wäert zu Getty respilléiere. Et kann Getty erzwéngen fir mat der Manuell Ofschloss ze briechen (oder Login) entweder mat der Schlitzschluss etc., beim "Top" oder mam "kill" -Befand. Dir wäert wahrscheinlech et mam Signal 9 (et kënnen net ignoréiert ginn) ëmzebréngen.

Getty aus Kommandozeilung: Programme ginn opgehale

Dir sollt normalerweis Getty vu vu / etc / inittab a net vun der Kommandozeilung ausféieren oder och aner Programmer déi am Terminal lafen, kënnen onerwaart ausgesat (gestoppt) sinn. Duerfir (fir d'nächst Sektioun ze verlaangen, wann Dir et net fir Iech wichteg ass). Wann Dir getty fir ttyS1 ze soen aus der Kommandozeilegung vun enger anerer Termin, soten tty1, da wäert et tty1 wéi säin "Kontrollterminal", obwuel d'tatsächlech terminal ass et op ttyS1. Dofir huet et de falschen Kontrollterminal. Awer wann et an der Inittab Datei fänkt un, da gëtt et ttyS1 wéi déi Kontrollterminal (korrekt).

Och wann de Contrôle terminal ass falsch, de Login op ttyS1 funktionnéiert fein (well Dir hutt ttyS1 als Argument fir Getty ginn). Déi standard Input an Ausgab ass op ttyS1 festgeluegt, obwuel d'Kontrollkontroll bleift tty11. Aner Programme déi op ttyS1 lafen, kënnen d'normale Input / Output erofhuelen (wat verbonne mat ttyS1 ass) an alles ass OK. Awer verschidde Programmer kënne de Feeler probéieren aus dem kontrolléiert Termin ze liesen (tty1) dat ass falsch. Elo gëtt tty1 mengt datt dës Programmer am Hintergrund vun tty1 gemaach ginn, also eng Versuch, aus tty1 ze liesen (et sollt et ttyS1) sinn, fir den Prozess ze halen deen e gelies huet. (Ee Backgroundprozess däerf net vun senger kontrolléierter Stellmaus geliwwert ginn.). Dir kënnt eng Noriicht zitoen wéi: " [1] + Stoppéiert " op der Kaart. Zu dësem Zäitpunkt sidd Dir stechend, well Dir net mat engem Prozess interagéiert deen probéiert Iech iwwer de falschen Termin ze kommunizéieren. Natiirlech iesst un dësem Wee kënnt Dir an eng aner Termin goen an den Prozess ëmbréngen etc.

agetty (getty genannt getty)

En Beispill Zeil an / etc / inittab:

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

S1 ass vun ttyS1. 23 heescht, datt Getty am Laaf Run Level 2 oder 3. Respawn bedeit, heescht datt wann Getty (oder e Prozess, dat ewech geholl huet wéi Bash) getöttert ginn, getty huet automatesch op (respawn) erëm. / sbin / getty ass de getty kommando. De -L heescht Lokal (ignoréiere Modemregelungssignal). -h (net am Beispül genannt) erméiglecht d'Hardware Flow Kontroll (selwëcht wéi Stréckkritsen). 19200 ass de Baud-Taux. ttyS1 heescht / dev / ttyS1 (COM2 an MS-DOS). vt102 ass den Typ vum Terminal an dës Getty wäert d'Ëmwelt variabel TERM op dësen Wäert setzen. Et ginn keng Configuratiounsdateien. Typ "init q" op der Kommandozeechnung no Getty änneren an Dir sollt en Loginpromotion gesinn.

Agetty - Auto-Detektioun vu Paritéitproblemer

De Agetty- Programm probéiert d'Paritéit festleeën, déi am Terminal festgeluecht gëtt (inkl. No Paritéit). Et hëlleft net 8-Bit Daten Bytes plus 1-Bit Paritéit. Kuckt d'8-Bit Daten Bytes (Plus Paritéit). Wann Dir stty benotzt fir Paritéit z'entwéckelen, agetéit d'automatesch automatesch zréck, well et ursprénglech d'Paritéit bastelt erof ze kommen, wéi wann et e Datebit war. Dëst ass well et muss de leschte Bescht kréien (vläicht e Paritéitbit) wéi Dir Är Login-Typ esou opmaacht, datt et Paritéit automatesch erkennen kann. Dofir, wann Dir Paritéit benotzt, aktivéiert et just am Text-Termin an et léisst et automatesch feststellen an et op de Computer setzen. Wann Äre Terminal hëlleft de Paritéit ënnerstëtzt, gëtt d'Login-Prompt gespaart bis datt Dir eppes so eppes schreift, datt den Getty d'Wuert erkennen kann

Paritéit. De verwackelte Prompt hänkt de Besucher, etc. aus engem Verspriechen ze login. Dat kéint awer just wat Dir wëllt.

Et gëtt heiansdo e Problem mat Auto-Detektioun vu Paritéit. Dëst ass geschitt, well Dir no Äre Login matgedeelt hutt, agiichte beginn de Loginprogramm fir un den Eenzelnen ofzeschléissen. Leider kann de Loginprogramm keng Paritéit erreechen, wann d' Getty- Programm net d'Paritéit z'identifizéieren da kann de Benotzer net bestëmmen et entweder. Wann de éischten Login-Versuch nët fehlgeschaft gouf, fëllt de Logbuch erneed ze maachen, asw. (All mat der Paritéit opgesoot). Allerdéngs, no enger Rei vu gescheedene Verspéidungen ze sichen (oder no engem Timeout) agetty erof annechten an d'Log-Sequenzen erëm erof. Wann d'Getty eremkomm ass, kann et d'Paritéit op der zweeter Versuch erreechen, sou datt alles alles kann OK maachen.

Mat enger falscher Paritéit kann de Loginprogramm net richteg gelies hunn wat Dir typellt an Dir kënnt net ugemellt sinn. Wann Är Terminal hëlleft erhieft Paritéit, wäert Dir weider e schrëftleche Bildschierm kucken. Wann d'Getty keng Paritéit erkennt a / etc / issue Datei gëtt normalerweis direkt virum Bild virgesinn, sou datt méi schwaach Wierder op der Kaart ersat ginn.

Firwat kann net agett datt Paritéit duerch den éischten Bréif geschriwwe gouf? Hei ass e Beispill: Nierft en 8-Bit Byte mat sengem Paritéit Bit 0 (High-Order Bit) erkennt a mat enger ongeruedener Nummer vun 1-Bits. Wéi eng Paritéit ass et? Bon, déi ongerueden Zuel vun 1 Bits implizéiert datt et en ongewéinlecher Paritéit. Mä et konnt och nëmmen e 8-Bit Charakter ouni Paritéit sinn. Et gëtt kee Wee bis elo fir ze bestëmmen wat. Mee bis elo hunn d'Méiglechkeet vu souguer Paritéit eliminéiert. D'Erkennung vun der Paritéit gëtt soumat vun engem Prozess vun der Eliminatioun weider.

Wann de nächste Byte gefeelt ass ähnlech wéi deen éischten an och ewech eliminéiert d'Méiglechkeet vu souguer Paritéit, et ass nach ëmmer net méiglech, Paritéit festzeleeën. Dës Situatioun kann weider onbestëmmend bleiwen an an e puer selwen Fichier'en sinn ofgeschloss, bis Dir Äre Login-Numm geännert huet. Wann d'Agetty e Paritéitbit vun 1 fënnt, da gëtt ugeholl datt dëst e Paritéitstéck ass a kee High-Order Bit vun engem 8-Bit-Charakter. Et ass ugeholl, datt Dir Meta-Charaktere (héich Bit set) an Ärem Benotzernumm benotzt (dh datt Äre Numm am ASCII ass).

E kann op eng "Logbicher" op verschiddene Weeër goen. Stellt Iech just een eenzegen Bréif oder zwee fir Äre Loginnumm drun a gitt duerno zréck. Wann dës Bréiwer net genuch fir Paritéiterkennung sinn, da fänkt de Login unzefänken, ier Paritéit festgestallt gouf. Heiansdo trëfft dëst Problem wann Dir de Terminal net an / oder verbonne gët, wann d'Agetty éischt fänkt un.

Wann Dir an dëser "Logopäik" stécht, kënnt Dir de Rescht Schlëssel méi oft ukucken, bis Dir d'Getty login prompt kritt. Eng aner Manéier ass just eng Minute oder esou fir e Timeout. Dann gitt d'Getty-Loginpromp op der Bildschierm vum Getty-Programm ugebueden an Dir kënnt nach eng Kéier probéieren ze loggen.

8-Bit Daten Bytes (Plus Paritéit)

Leider kann d'Agetti dës Paritéit net erkennen. Ende 1999 huet et keng Optioun fir d'Auto-Detektioun vu Paritéit ze deaktivéieren an och falsch Paritéit ze erkennen. D'Resultat ass datt de Login-Prozess verschrompelt gëtt an d'Paritéit falsch ass. Dofir ass et net machbar ze probéieren 8-Bit Daten Bytes mat Paritéit ze benotzen.

getty (Deel vun getty_ps)

(Déi meescht dovun ass aus der aler Serial-HOWTO vum Greg Hankins)
Fir dës Getty muss Dir zwou Einträgeren an enger Konfiguratiounsdatei setzen an eng Annonce am / etc / inittab . Hei sinn e puer Beispiller fir Är Terminal ze benotzen déi Dir an d'Konfiguratiounsdatei / etc / gettydefs hutt .

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

Bedenkt datt d'DT38400, DT19200, etc. just Labels sinn a muss dat selwecht sinn datt Dir an / etc / inittab benotzt .

Wann Dir wëllt, kënnt Dir getty fir interessant Saachen am Loginebanner ze maachen. A meng Beispiller hunn ech den System Numm an d'Seriennummer gedréckt. Dir kënnt aner Saachen addéieren: [Blockquote

Schiet = jo] @B Déi aktuell (zu der Zäit wou d'@B gesinn ass) bps rate. @D Den aktuellen Datum, an MM / DD / YY. @L D'serial Linn, déi de Getty ass. @S De System Numm. @T D'aktuell Zäit, am HH: MM: SS (24 Stonn). @U D'Zuel vun den momentan geschriwwe Benotzer. Dëst ass e Grof vun der Unzuel vun den Einträgeren an der / etc / utmp-Datei, déi e Feld net null ut_name hunn. @V De Wäert vun VERSIOUN, wéi et an der Offalldatei gegeben gëtt. Fir e puer "@" Zeechen ze weisen, benotzen Sie entweder \\ 'oder' @@ '.

Wann Dir Ännere / etc / gettydefs gemaach hutt , kënnt Dir bestätegen, datt d'Syntax richteg ass:

linux # getty -c / etc / gettydefs

Vergewëssert Iech datt Dir keng aner Getty- oder Ugietty Configuratiounsdatei fir den serialen Hafen hutt, deen Äre Termin verbonne mat wéi ( /etc/default/{uu}getty.ttyS N oder /etc/conf.{uu}getty.ttyS N ) , well dëst wahrscheinlech d' Getty am Terminal beweegt. Fëllt dës Konflikter of, wann se exitéieren.

Gitt Äert / etc / inittab- Datei op Getty op den seriellen Halt (Erofzesetzen vun der korrekter Informatioun fir Är Ëmwelt - Hafen, Geschwindegkeet an Standardtyp).

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

Zu dësem Zäitpunkt sollt Dir eng Acompte op Ärem Termin kucken. Dir musst um Retour eranzekommen fir de Terminal ze gesinn.

mgetty

De "m" steet fir Modem. Dëst Programm ass haaptsächlech fir Modem'en an am Ufank vu Mëtt 2000 wäert se nei Rekompiléierung benotzen fir se fir Text-Terminals benotzbar ze maachen (ausser Dir benotzt Hardwareballegung - an dat normalerweis e handwierk Kabel). Fir d'Dokumentatioun fir direkt ugeschlossend Terminals kuckt de "direktem" Deel vum Handbuch: mgetty.texi.

Kuckt an de leschten Linnen vun /etc/mgetty/mgetty.config fir e Beispill fir se e Terminal ze konfiguréieren. Wann Dir net "Kriibs-dtr nee" sënns, da géift Dir mengen datt Dir e Modem hutt an drop (negréieren) den DTR-Duebel am PC an e verflicht Versuch, de net existente Modem zréckzetrieden. Am Géigesaz zu anere Gettys gëtt d'Metty net un engem Terminal befestegt, bis een engem Schlëssel vun deem Uschloss hannerlooss sou datt Dir e gesinn? fir den Termin um Top oder ps bis dat passéiert. D'Logbicher an / var / log / mgetty / weisen e puer Warnmeldung z'ënnerstëtzen, déi nëmme fir Modems sinn déi Dir ignoréiert.

Hei ass e Beispill vun der einfacher Linn déi Dir / etc / inittab gesat hutt:

s1: 23: Répons a / sbin / mgetty -r ttyS1