Steuerndes Terminal
100%

Prozesse · Lektion 2

Steuerndes Terminal

Erfahre, wie steuernde Terminals Sitzungen mit interaktiver Eingabe, Signalen und der Jobsteuerung der Shell verbinden.

Eine interaktive Anmeldesitzung kann ein steuerndes Terminal besitzen: ein der Sitzung zugeordnetes Terminalgerät, das der Kernel für vom Terminal erzeugte Signale und die Jobsteuerung verwendet. Das Feld TTY in Prozessauflistungen hilft dabei, diese Zuordnung zu erkennen.

Terminal- und Pseudo-Terminalgeräte

Die Bezeichnung TTY stammt von historischen Fernschreibern. Unter modernem Linux sind Terminalschnittstellen Geräteabstraktionen und nicht unbedingt physische Geräte.

Eine virtuelle Systemkonsole kann unter einem Namen wie tty1 erscheinen. Die Tastenkombinationen zum Wechseln zwischen Konsolen unterscheiden sich je nach Distribution und sollten nicht vorausgesetzt werden. Ein Terminalemulator, eine entfernte Anmeldung oder ein Multiplexer verwendet gewöhnlich ein Pseudo-Terminalpaar, dessen interaktive Seite unter einem Namen wie pts/3 angezeigt wird.

Zeige das mit der Standardeingabe des aktuellen Befehls verbundene Terminal an mit:

$ tty
/dev/pts/3

Dieses Ergebnis hängt mit dem umfassenderen Konzept des steuernden Terminals zusammen, ist aber nicht mit ihm identisch. Ein Prozess kann seine Standardeingabe oder -ausgabe umleiten und dennoch zu einer Sitzung mit steuerndem Terminal gehören.

Was kennzeichnet ein Name wie pts/3 gewöhnlich?

Sitzungen, Prozessgruppen und Jobsteuerung

Ein steuerndes Terminal gehört zu einer Sitzung und nicht bloß zu dem Befehl, der zufällig ein Fenster geöffnet hat. Innerhalb dieser Sitzung verfolgt das Terminal eine Vordergrundprozessgruppe. Die Shell stellt eine Vordergrund-Pipeline in diese Gruppe, damit sie Eingaben lesen und vom Terminal erzeugte Signale empfangen kann.

Das Drücken von Ctrl-C veranlasst den Terminaltreiber beispielsweise gewöhnlich, SIGINT an die Vordergrundprozessgruppe zu senden. Eine Hintergrundgruppe, die vom Terminal zu lesen versucht, kann SIGTTIN empfangen. Diese Regeln ermöglichen der Shell die Koordination von Vordergrund- und Hintergrundjobs.

An welche Prozesse richtet ein Terminal gewöhnlich das durch Ctrl-C erzeugte Signal?

Die Spalte `TTY` lesen

Fordere bestimmte Prozessfelder ausdrücklich an, wenn du eine stabile Ansicht möchtest:

$ ps -o pid,tty,stat,cmd

Ein Terminalname wie pts/3 bezeichnet das für diesen Prozess erfasste steuernde Terminal. Ein Fragezeichen (?) bedeutet gewöhnlich, dass der Prozess kein steuerndes Terminal besitzt.

Viele Dienstprozesse besitzen kein steuerndes Terminal, weil ein Dienstmanager sie unabhängig von einer interaktiven Anmeldesitzung startet. Ein fehlendes TTY beweist für sich allein jedoch nicht, dass ein Prozess ein Daemon ist, und ein Hintergrundjob der Shell kann weiterhin ein steuerndes Terminal besitzen.

Was bedeutet ? in der Spalte TTY von ps gewöhnlich?

Schließen des Terminals und Hangups

Wenn eine Terminalverbindung verschwindet, kann der Kernel oder die Terminal-/Sitzungssoftware SIGHUP an zugehörige Prozesse senden. Ein Prozess kann sich beenden, das Signal abfangen, es ignorieren oder bereits so eingerichtet worden sein, dass er es überlebt. Shell-Funktionen wie disown, Werkzeuge wie nohup, Multiplexer und Dienstmanager beeinflussen das Lebenszyklusverhalten.

Das Schließen eines Terminals garantiert daher nicht, dass sich jeder darin gestartete Befehl beendet. Prüfe die Sitzung, Signalbehandlung, Umleitungen und den Supervisor eines Prozesses, wenn sein Fortbestehen wichtig ist.

Warum ist die Aussage ungenau, das Schließen eines Terminals beende immer jeden darin gestarteten Prozess?

Lektion abgeschlossen

Sie haben Steuerndes Terminal abgeschlossen

Du kannst nun ein steuerndes Terminal mit der interaktiven Prozessverwaltung in Beziehung setzen.

  • Unterscheide virtuelle Terminals von Pseudo-Terminals.

  • Verbinde Terminalsignale mit der Vordergrundprozessgruppe.

  • Interpretiere Terminalnamen und ? in der Ausgabe von ps.

  • Behandle das Schließen eines Terminals als Signalisierung und nicht als garantierte Prozessbeendigung.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Prozesse