Dk Screen

Problemstellung

Instabile Verbindungen hindern oft Administratoren beim effektiven Arbeiten. Kritische Prozesse werden unterbrochen durch ein simples Reconnect des Internetanbieters oder ähnliches.

Manchmal dauern Prozesse auch Tage und der Klient müsste die ganze Zeit die SSH-Verbindung halten.

Ein anderes Szenario ist, man möchte bei der Nutzung eines Programmes jemandem helfen, der sich aber nicht am selben Rechner befindet.

Lösung: screen

Mit dem sehr mächtigen Konzept von screen werden 2 Probleme auf einmal behoben und bietet darüber hinaus noch mehr an. screen ist auf der Maschine ein Server und ein Klient in einem, wobei der Server transparent bei Bedarf erst durch den Klient gestartet wird und beim beenden aller Sessions im Server sich selbst beendet. Sessions sind Instanzen von virtuellen Terminals, wie bei SSH, nur dass diese auf der gleichen Maschine beschränkt sind.

Nutzung

screen ist so Umfangreich und flexibel, dass hier nur wenige Funktionen überhaupt beschrieben werden können. Es empfiehlt sich die Manpage von screen anzuschauen, um eine Vorstellung zu bekommen, was alles möglich ist.

Serververbindungen

mit einer Session starten

# screen

Auf manchen Systemen kommt eine Begrüßung, die man mit der Leertaste überspringen kann.

Nun steckt man schon in screen drin. Beendet man die Shell, die durch screen automatisch gestartet wurde, beendet sich auch die screen-Session und da es momentan die Einzige ist, auch der screen-Server:

# exit

verlassen und wieder betreten

Innerhalb von screen gibt es Tastenkombinationen, um screen zu steuern. Diese fangen alle mit Strg-a an, sprich, als erstes drückt man die Tastenkombination Strg-a gefolgt von einer anderen Tastenkombination, die dann screen befolgt.

Um screen zu verlassen, ohne den screen-Server und somit die Sessions zu beenden, um später zurück zukehren, verwendet man die Tastenkombination: Strg-a, d

Später kann man wie folgt die Verbindung zum screen-Server wieder aufbauen:

# screen -r

Ist man noch mit dem Server verbunden, wird die Verbindung verweigert.

mit Mehreren betreten

Wir haben gerade gesehen, dass screen -r eine weitere Verbindung zum screen-Server nicht erlaubt, aber es ist dennoch möglich:

# screen -x

Klienten rauswerfen und selbst betreten

Statt den Server mit anderen zu teilen, kann man auch andere screen-Klienten rausschmeissen, um dann alleinig im Server zu sein:

# screen -rD

Sessions

Innerhalb von screen sind mehrere Sessions möglich. Dies bedeutet, dass man mehrere Shells nebeneinander öffnen kann.

Neue Session

Eine neue Session wird gestartet durch: Strg-a, c

Wechsel

Die Sessions können entweder direkt angesprungen werden mit hilfe von: Strg-a 0-9

Wobei die erste Session die 0 hat und so weiter.

Zur nächsten Session springt man mit: Strg-a Leertaste

Zur vorigen mit: Strg-a Backspace

Und es ist möglich zur letzten aktiven zu wechseln, in der man also zuvor war: Strg-a a

Session beenden

Einzelne Sessions lassen sich nur beenden, in dem der Prozess - die Shell - die darin läuft beendet wird. Dadurch bleiben andere Sessions unberührt.

Server sperren

Der screen-Server lässt sich mit einem Passwort schützen. Standardmäßig wird dafür das Benutzerpasswort des Systems verwendet, um es wider zu entsperren.

Sperren: Strg-a, x

Entsperren: Passwort eingeben.

Ist der Server gesperrt, funktionieren keine Tastenkombinationen, somit kann man den Server ohne weiteres nicht verlassen.

.screenrc

Meine .screenrc