screen

Monday, 10. September 2007 at 21:06 Uhr

Eines der vielleicht wichtigsten Programme, wenn man Linux über eine Systemkonsole administrieren will ist: screen

Da je nach Distribution von Linux / Unix nur eine beschränkte Anzahl von Systemkonsolen TTY’s (teletype device) zur Verfügung stehen, bietet sich screen als ideale Lösung an, dieses Problem zu lösen.
screen ist einen sogenannten “Terminal-multiplexer” und ermöglicht es einem innerhalb einer Konsole heraus, beliebige weitere zusätzliche Konsolen-Arbeitsflächen zu öffnen.
Mit dem Aufruf: [Strg-a] + [Option] lässt sich screen steuern.

Um screen zu starten genügt der folgende Aufruf:

screen

Mit der Leertaste wird eine neue Shell innerhalb der Konsole aktiviert und darauf kann man z.B einen Befehl wie z.B. tail -f /var/log/message eingeben und danach die Shell wieder mit [Strg-a] + [d] verlassen.

Mit [Strg-a] + [d] wird die aktuelle screen Session in den Hintergrund gesetzt aber nicht angehalten und es erscheint eine Meldung, dass der Prozess “losgelöst” wurde. ([detached])

Um eine weitere screen Session zu erstellen genügt es, ein weiteres mal screen auszurufen, darauf lassen wir nun top laufen und verlassen diese screen Session gleich wieder mit [Strg-a] + [d].

Gibt man nun screen -r in der Konsole ein, so sieht man etwas in dieser Art:

5711.pts-0.debian (Detached)
4987.pts-0.debian (Detached)

4987 ist die PID der screen Session mit dem Inhalt: tail -f /var/log/message
Die soeben letzte screen Session hat die PID 5711 auf der top läuft.
Um eine bestimme screen Session wieder aufzunehmen benutzt man folgenden Syntax: screen -r PID
Dies geschieht so:

screen -r 4987

Wir sehen nun wieder die Oberfläche auf der tail -f /var/log/message läuft.

Mit [Strg-a] + [Leertaste] wechselt man bequem zwischen den einzelnen screen Sessions hin und her.
Der Aufruf [Strg-a] [0...9] lässt eine screen Sessions direkt über eine Zahl aufrufen, natürlich lassen sich mehr als 10 screen Session’s erstellen. Diese können dann aber nicht über eine Zahl direkt angesprochen werden.
Mit exit beendet man die aktuelle screen Session, genau so, wie wenn man ein Terminal schliessen würde.

Das Manual bietet eine Fülle von weiteren Optionen an, dort werden auch Eigenarten und Einschränkungen von screen gegenüber einer Systemkonsole beschrieben.

man screen

Ich benutze screen schon seit einigen Jahren für die Wartung meiner Server und habe es als unverzichtbares Hilfsmittel kennen und schätzen gelernt.