★ Screen, oder der immer währende Kontext

 — 3 minutes read


Spricht man von Multitasking, meint man das gleichzeitige Bearbeiten mehrerer Aufgaben (engl. Tasks). Der Begriff Multitasking ist aus der Informatik entlehnt und bezeichnet die Fähigkeit eines Betriebssystems mehrere Programme (Tasks) parallel auszuführen. Da die Anzahl der Tasks meist die Anzahl der Prozessoren übersteigt, unterbricht das Betriebssystem laufende Prozesse, legt sich schlafen und erweckt andere. Dafür muss es den Zustand des Tasks, den Kontext, speichern bzw. wieder herstellen.

screen_helpAuch wir müssen nach einer Unterbrechung zuerst den Kontext wieder herstellen, bevor wir weiterarbeiten können. Manchmal geht der Kontext jedoch vollständig verloren. Ich lasse rechenintensive Aufgaben häufig auf Rechen-Clustern laufen und ärgere mich sehr, falls die VPN- oder SSH-Verbindung abbricht und mein Kontext verloren geht. Das Kommandozeilenprogramm screen verschafft hier deutlich Entspannung.

Screen multiplext ein physikalisches Terminal zwischen mehreren Anwendungen. Das bedeutet, man kann über eine Verbindung mehrere virtuelle Terminals (Screens) starten, in denen Programme unabhängig voneinander laufen. Der besondere Clou von screen ist: Es kann den Zustand der Screens speichern und wiederherzustellen. Verliert man die Verbindung oder möchte man von einem anderen Rechner aus weiterarbeiten, geht der eigene Kontext, die Sitzung, nicht verloren, sondern kann wieder hergestellt werden. Die Programme laufen währenddessen weiter.

Auf diese Weise kann man Kommandos auf Rechen-Clustern starten, sich abmelden und später weiterarbeiten, so als ob man die Verbindung nie unterbrochen hätte. Im Folgenden die wichtigsten Kommandos von screen.

Installation und Konfiguration
Screen ist in allen aktuellen Linux-Distributionen enthalten und kann über das Paketmanagement installiert werden. Für Mac OS X kann man es aus den Mac-Ports installieren. Gestartet wird es durch Eingabe von screen auf der Kommandozeile. Die Interaktion mit screen findet über Tastenkombinationen statt, die mit CTRL-A beginnen. Da diese Kombination in der bash zum Sprung an den Anfang der Eingabe genutzt wird, nutze ich CTRL-X. Zusätzlich sollte man vor Aufrufen von screen den Terminal-Typ auf “screen” ändern, damit Sonderzeichen korrekt verarbeitet werden. Für die bash nutze ich folgenden Alias:
alias screen=‘TERM=screen screen -e^Xx’

Mehrere Screens
screen_screensMöchte man ein weiteres Screen öffnen, so gibt man CTRL-X-C ein. Der Name des neuen Screens entspricht dem gestarteten Programm; in den meisten Fällen also “bash”. Dieser lässt sich durch CTRL-X-SHIFT-A jedoch ändern, so dass in der Übersicht aller offenen Screens leichter navigiert werden kann. Die Übersicht ruft man mit CTRL-X-” auf. Das direkte Anspringen eines bestimmten Screen geht mit CTRL-X-[0-9].

Speichern der Sitzung
**Möchte man **eine Sitzung speichern
bzw. in die original Shell aus der man Screen gestartet hat zurückkehren, gibt man CTRL-X-D (für detach) ein. Die Sitzung wird aber auch gespeichert, sollte die Verbindung getrennt werden.

Wiederherstellen der Sitzung
**Nach Eingabe von screen wird grundsätzlich eine neue Sitzung gestartet. Möchte man eine **alte Sitzung wieder herstellen
, so kann man sich mit screen -ls (für list) die gespeicherten Sitzungen anzeigen lassen und mit screen -r <pid> aufrufen. Ist nur eine Sitzung aktiv, genügt die Eingabe von screen -r (für re-attach).

**Weitere Funktionen und Hilfe
**Screen kann noch sehr viel mehr. Zum Beispiel unterstützt es Copy-And-Paste zwischen Screens. Eine Übersicht aller Befehle bekommt man durch Eingabe von CTRL-X-?.

**Übersicht der wichtigsten Kommandos
**






  • screen: Starte eine neue Sitzung
  • screen -ls: Zeigt gespeicherte Sitzungen
  • screen -r: Stellt eine Sitzung wieder her
  • CTRL-X-C: neues Screen öffnen
  • CTRL-X-SHIFT-A: Namen ändern
  • CTRL-X-”: Übersicht über offene Screens
  • CTRL-X-[0-9]: Anspringen eines Screens
  • CTRL-X-D: Sitzung speichern und Screen beenden
  • CTRL-X-?: Hilfe

Preis: kostenlos — GPL lizensiert

Link: http://www.gnu.org/software/screen/

Und Du? Wie begegnest Du unzuverlässigen VPN-Verbindungen und rettest Deinen Kontext? Hast Du schon Erfahrung mit screen? Lass die anderen Leser teilhaben und schreib einen Kommentar!