Befehl "screen"-kleiner Helfer in der Not

Sie als Admin haben sicher schon einmal die Situation erlebt, daß Sie eine lang laufende Aufgabe auf einem entfernten Rechner ausführen müssen und plötzlich Ihre Verbindung abbricht, die SSH-Sitzung beendet wird und Ihre Arbeit verloren geht? Speziell bei Updates ist das ärgerlich! Nun, das ist uns allen schon einmal passiert, nicht wahr? Glücklicherweise gibt es ein Dienstprogramm namens "screen", mit dem wir die Sitzungen wieder aufnehmen können (wenn wir sie damit gestartet haben!).

Screen ist ein Terminal-Multiplexer. Mit anderen Worten, es bedeutet, daß Sie eine Screen-Sitzung starten und dann eine beliebige Anzahl von Fenstern (virtuelle Terminals) innerhalb dieser Sitzung öffnen können. Prozesse, die in Screen laufen, laufen auch dann weiter, wenn ihr Fenster nicht sichtbar ist, selbst wenn die Verbindung unterbrochen wird.

In vielen Linux-Distributionen ist "screen" bereits vorinstalliert, z.B. bei SUSE bzw. openSUSE. Sie können prüfen, ob es auf Ihrem System installiert ist, indem Sie eingeben:
screen -v

Sollte "screen" widererwarten nicht installiert sein, können Sie das Programm einfach mit dem Paketmanager Ihrer Distribution nachträglich installieren.

  • für Debian bzw. Ubuntu: sudo apt update && sudo apt install screen -y
  • für Fedora bzw. CentOS: sudo yum install screen
  • Um jetzt mit "screen" zu arbeiten, verbinden Sie sich mit dem SSH-Client Ihrer Wahl auf Ihre entfernte Linux-Maschine und geben dort am Konsolenprompt einfach screen ein.
    screen

    Dadurch wird eine Screen-Session geöffnet. Die Kommandos - welche Sie jetzt eingeben - werden ausgeführt, auch wenn Sie Ihre SSH-Verbindung trennen. So, als ob Sie diese (z.B. per VNC oder direkt am Server vor Ort) direkt auf der Konsole eingegeben hätten.

    Die wichtigsten Befehle bzw. Switches (welche wir auch tagtäglich verwenden) sind:

    screen -S [Session_Name] starten einer neuen Screen-Session mit einem Sessionnamen
    screen -t [title] bezeichnet den Namen des neuen Screen-Fensters
    screen -x erneute Verbindung zu einem Screen bei Abbruch der SSH-Session
    screen -d Verbindung zu einem Screen trennen (läuft aber weiterhin)
    screen -r Verbindung zu einer laufenden Screen-Session wieder herstellen
    screen -ls listet alle aktiven Screen-Sessions auf dem Host auf
    exit beendet den Screen-Host auf dem Server komplett

    Das waren die wichtigsten Befehle zu "screen". Wir verwenden dieses Tool selbst und glaubt uns, es hat uns schon oft den A**** gerettet, im speziellen bei Updates von entfernten Servern (wie z.B. unseren eigenen Webserver in Erfurt).

    Jetzt können Sie mit dem Dienstprogramm Screen beginnen und aus einer einzigen Sitzung mehrere Screen-Fenster erstellen, Screen-Sitzungen lösen und wieder aufnehmen.

    Es gibt noch viel mehr über GNU Screen auf der Screen-Benutzerhandbuch-Seite zu erfahren.