Screen
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.
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.
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.
# 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
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.
Wir haben gerade gesehen, dass screen -r eine weitere Verbindung zum screen-Server nicht erlaubt, aber es ist dennoch möglich:
# screen -x
Statt den Server mit anderen zu teilen, kann man auch andere screen-Klienten rausschmeissen, um dann alleinig im Server zu sein:
# screen -rD
Innerhalb von screen sind mehrere Sessions möglich. Dies bedeutet, dass man mehrere Shells nebeneinander öffnen kann.
Eine neue Session wird gestartet durch: Strg-a, c
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
Einzelne Sessions lassen sich nur beenden, in dem der Prozess - die Shell - die darin läuft beendet wird. Dadurch bleiben andere Sessions unberührt.
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.