Fast jeder Prozess unter Linux verfügt über ein steuerndes Terminal. Aber was ist überhaupt ein steuerndes Terminal? Lass es uns herausfinden.

Möglicherweise haben Sie den Begriff „Steuerterminal“ im Zusammenhang mit Linux-Prozessen gehört. Möglicherweise sind Sie verwirrt darüber, was ein steuerndes Terminal ist. Glücklicherweise ist ein steuerndes Terminal leicht zu verstehen.

Was ist ein Kontrollterminal?

Ein steuerndes Terminal ist ein Terminal, an dem ein Linux-Prozess startet. Wenn Sie beispielsweise einen Befehl über die Shell ausführen, ist das Terminalfenster, in dem Sie den Befehl eingegeben haben, das steuernde Terminal.

Prozesse, die mit steuernden Terminals gestartet werden, erben Attribute des übergeordneten Terminals. Dies liegt an der Art und Weise, wie Prozesse unter Linux gestartet werden. Wenn Sie einen Befehl ausführen, erstellt die Shell eine Kopie von sich selbst, die sogenannten „Forks“, und ersetzt sich dann durch das Programm, das Sie ausführen wollten, die „Execs“.

instagram viewer

So sehen Sie, welche Prozesse über ein steuerndes Terminal verfügen

Es ist leicht, Prozesse zu erkennen, die unter Linux über ein Steuerungsterminal verfügen. Sie können verwenden der ps-Befehl Sie zu sehen.

Mit dem können Sie alle Prozesse aller Benutzer im System anzeigen, unabhängig davon, ob diese über Steuerterminals verfügen oder nicht „aux“ Streit:

PS Aux

Da dies auf Linux-Systemen viele Ausgaben generiert, kann es hilfreich sein, diese an einen Pager weiterzuleiten, z. B. less:

ps aux | weniger

Sie können die ersten Zeilen auch mit dem Dienstprogramm head anzeigen:

ps aux | Kopf

In der Ausgabe sehen Sie eine Spalte mit der Bezeichnung „TTY“. Dies zeigt das steuernde Terminal eines Prozesses an, falls vorhanden. Ein Prozess mit einem steuernden Terminal zeigt „ttyx“ an, wobei „x“ die Terminalnummer oder „pts“ ist, gefolgt von einem Schrägstrich (/) und der Zeilennummer des Pseudoterminals.

Da es sich bei den meisten Terminals tatsächlich um Terminalemulatoren handelt, verwenden sie Pseudoterminals oder PTYs. Das „pts“ weist eher auf einen Terminalemulator als auf ein physisches Terminal oder hin virtuelle Konsole.

Prozesse ohne Steuerung von Terminals

Auf den meisten Linux-Systemen wird in der TTY-Spalte ein angezeigt Fragezeichen (?) Charakter in vielen Prozessen. Dies liegt daran, dass der Prozess kein steuerndes Terminal hat. Warum passiert das?

Linux-Systeme führen im Hintergrund viele Daemons oder Dienste aus. Dabei kann es sich um Server handeln, beispielsweise um einen Webserver, aber auch um Daemons, die viele grundlegende Dinge wie den Betrieb Ihrer Netzwerkverbindung erledigen. Diese benötigen kein Terminal und laufen daher auch ohne.

Wenn Sie eine grafische App über das Menü einer Desktop-Umgebung starten, verfügt diese ebenfalls über kein Steuerungsterminal.

Mit Terminal-Multiplexern wie GNU Screen oder tmux können Sie einen Prozess trennen. Wenn Sie sich abmelden, aber Ihr System weiterlaufen lassen, stellen Sie möglicherweise fest, dass diesem Prozess auch ein Steuerungsterminal fehlt.

Wenn Sie einen Prozess ohne steuerndes Terminal haben, den Sie loswerden möchten, Sie können das Kill-Dienstprogramm verwenden.

Jetzt wissen Sie, wie man Terminals steuert

Ein steuerndes Terminal ist ein Terminal, von dem aus Sie einen Befehl gestartet haben. Mit dem Befehl ps können Sie leicht erkennen, welche Prozesse über ein steuerndes Terminal verfügen und welche nicht. Und bei vielen Linux-Programmen ist das nicht der Fall, entweder weil es Daemons sind oder weil Sie sie möglicherweise mit einem Terminal-Multiplexer getrennt haben.

Multiplexer wie tmux sorgen nicht nur dafür, dass lokale Terminalsitzungen bei allen Anmeldungen bestehen bleiben, sondern sind auch leistungsstarke Tools für Remote-SSH-Verbindungen.