Mit Screen laufen deine Terminal-Befehle auf dem Server weiter, auch wenn die SSH-Verbindung abbricht oder du den Laptop zuklappst.
Warum überhaupt Screen?
Stell dir folgende Situation vor: Du bist per SSH auf deinem Ubuntu-Server angemeldet und startest ein Distributionsupgrade, ein großes rsync oder einen Datenbank-Dump. Das Ganze läuft eine halbe Stunde. Nach zehn Minuten bricht das WLAN kurz weg – und mit der SSH-Verbindung stirbt auch der laufende Prozess.
Der Grund dafür ist die Art, wie Linux mit Prozessen umgeht: Jeder Befehl, den du startest, hängt an deinem Terminal. Fällt das Terminal weg, bekommen alle daran hängenden Prozesse das Signal SIGHUP („hang up“) und beenden sich. Ein halb durchgelaufenes apt upgrade ist ungefähr das Unangenehmste, was dir auf einem Server passieren kann.
Genau hier setzt Screen an. Screen ist ein sogenannter Terminal-Multiplexer. Er schiebt eine zusätzliche Ebene zwischen deine SSH-Verbindung und deine laufenden Befehle. Diese Ebene lebt auf dem Server und nicht auf deinem PC – die Verbindung darf also jederzeit wegbrechen, ohne dass der Prozess etwas davon merkt.
Zwei Dinge bekommst du damit geschenkt: Erstens überleben deine Sitzungen die Verbindung. Du klinkst dich aus, machst Feierabend, meldest dich morgen wieder an und findest den Prozess genau da vor, wo du ihn verlassen hast. Zweitens kannst du mehrere Fenster in einer einzigen Verbindung nutzen. Statt drei PuTTY-Fenster zu öffnen, arbeitest du in einer Sitzung mit mehreren umschaltbaren Fenstern – oder teilst den Bildschirm auf.
Screen installieren
Bei den aktuellen Ubuntu-Versionen ist Screen nicht mehr zwingend vorinstalliert. Prüfen wir das zuerst:
screen --versionKommt eine Ausgabe wie Screen version 4.09.01 (GNU), ist alles vorhanden. Meldet die Shell dagegen command not found, installieren wir Screen nach. Vorher wie immer die Paketlisten aktualisieren:
sudo apt update
sudo apt install screen -yZur Erläuterung:
| Befehl / Option | Bedeutung |
| sudo apt update | Aktualisiert die lokalen Paketlisten. Ohne diesen Schritt greift APT unter Umständen auf veraltete Versionsangaben zurück. |
| sudo apt install screen | Installiert das Paket „screen“ aus den offiziellen Ubuntu-Quellen. |
| -y | Beantwortet die Rückfrage „Möchtest du fortfahren?“ automatisch mit Ja. Praktisch bei bekannten, unkritischen Installationen. |
| screen –version | Gibt die installierte Version aus. Dient hier nur als Prüfung, ob Screen überhaupt vorhanden ist. |
Das Grundprinzip: die Escape-Taste Strg+A
Bevor wir loslegen, ist ein Punkt wichtig zu verstehen, weil sonst später alles verwirrend wirkt: Screen läuft unsichtbar zwischen dir und der Shell. Damit Screen unterscheiden kann, ob eine Tasteneingabe für die Shell oder für Screen selbst gedacht ist, gibt es eine Vorschalt-Taste – die sogenannte Escape-Taste. Standardmäßig ist das Strg+A.
Jeder Screen-Befehl besteht deshalb aus zwei Schritten: erst Strg+A drücken und wieder loslassen, dann den eigentlichen Buchstaben. In Anleitungen liest man das als „Strg+A, dann d“.
Ein bekannter Nebeneffekt: In der Bash springt Strg+A normalerweise an den Zeilenanfang. Innerhalb von Screen ist diese Tastenkombination belegt. Willst du trotzdem an den Zeilenanfang, drückst du Strg+A, dann a.
Wenn du nicht mehr weiterweißt, zeigt dir Strg+A, dann ? eine Übersicht aller Tastenbelegungen. Diese Hilfe verlässt du mit der Leertaste oder Enter.
Die erste Sitzung starten
Der schnellste Einstieg ist ein einzelner Befehl:
screenDer Bildschirm wird kurz geleert (je nach Version erscheint ein Begrüßungstext, den du mit der Leertaste wegklickst) und du landest in einer scheinbar ganz normalen Shell. Der Unterschied ist nicht sichtbar, aber entscheidend: Diese Shell läuft jetzt innerhalb einer Screen-Sitzung.
In der Praxis solltest du deine Sitzungen aber immer benennen. Sobald du zwei oder drei Sitzungen offen hast, ist eine Liste aus reinen Prozessnummern kaum noch zu unterscheiden:
screen -S upgrade-S steht für „session name“. Der Name upgrade ist frei wählbar – sinnvoll ist etwas, das die Aufgabe beschreibt, zum Beispiel backup, datenbank oder logs.
Wichtiger Hinweis zu sudo: Eine Screen-Sitzung gehört immer dem Benutzer, der sie gestartet hat. Startest du sie mit sudo screen -S upgrade, gehört die Sitzung dem Benutzer root und du kommst später nur mit sudo screen -r wieder heran. Sauberer ist es, Screen als normaler Benutzer zu starten und die einzelnen Befehle innerhalb der Sitzung mit sudo auszuführen.
Sitzung ablösen und wieder betreten
Das ist die eigentliche Kernfunktion von Screen. Starte in deiner Sitzung testweise einen Befehl, der eine Weile läuft:
ping -c 1000 8.8.8.8Und jetzt löst du dich von der Sitzung – im Screen-Jargon „detach“:
Strg+A, dann d
Du landest wieder in deiner normalen Shell, Screen meldet [detached from 12345.upgrade]. Der Ping läuft im Hintergrund auf dem Server weiter. Du könntest jetzt PuTTY schließen, den Rechner ausschalten und morgen weitermachen.
Welche Sitzungen gerade existieren, zeigt:
screen -lsDie Ausgabe sieht ungefähr so aus:
There is a screen on:
12345.upgrade (28.07.2026 10:14:22) (Detached)
1 Socket in /run/screen/S-thomas.Zu lesen ist das so: 12345 ist die Prozess-ID, upgrade der von dir vergebene Name. (Detached) bedeutet, dass niemand gerade mit der Sitzung verbunden ist, (Attached) heißt, dass sie bereits geöffnet ist.
Zurück in die Sitzung kommst du mit:
screen -r upgradeDer Ping läuft weiter, als wäre nichts gewesen.
Ein häufiger Stolperstein: Wenn deine SSH-Verbindung hart abgebrochen ist, weiß Screen davon nichts und hält die Sitzung weiterhin für (Attached). Ein einfaches screen -r verweigert dann den Dienst. In dem Fall hilft:
screen -d -r upgradeDas -d löst die alte, tote Verbindung zwangsweise ab und -r verbindet dich neu.
Die wichtigsten Kommandozeilen-Optionen im Überblick:
| Option | Bedeutung |
| screen | Startet eine neue, unbenannte Sitzung. |
| screen -S name | Startet eine neue Sitzung mit dem angegebenen Namen. |
| screen -ls | Listet alle vorhandenen Sitzungen mit PID, Name und Status auf. |
| screen -r name | Betritt eine abgelöste Sitzung wieder („reattach“). |
| screen -d -r name | Löst eine noch als aktiv geltende Sitzung ab und betritt sie neu. Der Standardweg nach einem Verbindungsabbruch. |
| screen -x name | Betritt eine Sitzung zusätzlich, ohne die bestehende Verbindung abzulösen. Beide Bildschirme zeigen dasselbe – ideal, um jemandem etwas zu zeigen. |
| screen -X -S name quit | Beendet eine Sitzung von außen, ohne sie vorher zu betreten. |
| screen -wipe | Räumt Sitzungen aus der Liste, die als „Dead“ markiert sind. |
| screen -L -S name | Startet die Sitzung und schreibt die komplette Ausgabe zusätzlich in eine Logdatei. |
Mehrere Fenster in einer Sitzung
Eine Screen-Sitzung kann mehrere Fenster enthalten. Das ist der zweite große Nutzen: Du brauchst nur eine SSH-Verbindung, arbeitest aber parallel in mehreren Shells – zum Beispiel in einem Fenster das Log per tail -f und im anderen die Konfigurationsdatei im Editor.
Ein neues Fenster legst du mit Strg+A, dann c an (c wie „create“). Du landest sofort in einer frischen Shell. Das alte Fenster ist nicht weg, es liegt nur im Hintergrund.
| Tastenkombination | Funktion |
| Strg+A, dann c | Legt ein neues Fenster an. |
| Strg+A, dann n | Wechselt zum nächsten Fenster („next“). |
| Strg+A, dann p | Wechselt zum vorherigen Fenster („previous“). |
| Strg+A, dann 0 bis 9 | Springt direkt zum Fenster mit dieser Nummer. |
| Strg+A, dann „ | Zeigt eine Liste aller Fenster zur Auswahl. Der schnellste Weg bei vielen Fenstern. |
| Strg+A, dann A | Benennt das aktuelle Fenster um. Sehr zu empfehlen, damit die Liste lesbar bleibt. |
| Strg+A, dann Strg+A | Springt zwischen den letzten beiden Fenstern hin und her. |
Den Bildschirm teilen
Screen kann den sichtbaren Bereich zusätzlich in mehrere Bereiche („Regionen“) aufteilen. So siehst du zwei Fenster gleichzeitig nebeneinander statt abwechselnd.
| Tastenkombination | Funktion |
| Strg+A, dann S | Teilt den Bildschirm waagerecht (Großbuchstabe S). |
| Strg+A, dann | | Teilt den Bildschirm senkrecht. |
| Strg+A, dann Tab | Springt in den nächsten Bereich. |
| Strg+A, dann X | Schließt den aktuellen Bereich. Das darin angezeigte Fenster selbst bleibt bestehen. |
| Strg+A, dann Q | Schließt alle Bereiche bis auf den aktuellen. |
Wichtig zu wissen: Ein frisch geteilter Bereich ist zunächst leer. Screen erzeugt dort nicht automatisch eine Shell. Du springst mit Strg+A, dann Tab hinein und wählst dann entweder mit Strg+A, dann n ein vorhandenes Fenster aus oder legst mit Strg+A, dann c ein neues an. Wer das nicht weiß, hält den leeren Bereich schnell für einen Fehler.
Im Verlauf zurückscrollen
Innerhalb von Screen funktionieren Scrollrad und Bild-auf-Taste meistens nicht so, wie man es erwartet – Screen fängt die Bildschirmausgabe selbst ab. Stattdessen gibt es einen eigenen Kopier- und Scroll-Modus:
Strg+A, dann [
Jetzt bewegst du dich mit den Pfeiltasten sowie Bild-auf und Bild-ab durch den bisherigen Verlauf. Mit der Leertaste setzt du eine Markierung, mit der zweiten Leertaste kopierst du den markierten Bereich in die Zwischenablage von Screen. Einfügen kannst du ihn mit Strg+A, dann ]. Den Modus verlässt du mit Escape.
Standardmäßig merkt sich Screen nur wenige Zeilen Verlauf. Wie du das erhöhst, steht weiter unten im Abschnitt zur Konfiguration.
Die Ausgabe mitschneiden
Gerade bei langen Upgrades ist es hilfreich, die komplette Ausgabe in einer Datei zu haben – zum Beispiel, um hinterher in Ruhe nach Fehlermeldungen zu suchen. Das Mitschneiden schaltest du jederzeit mit Strg+A, dann H ein und wieder aus (Großbuchstabe H).
Screen legt die Datei im aktuellen Verzeichnis unter dem Namen screenlog.0 an. Alternativ startest du die Sitzung gleich mit aktivierter Protokollierung:
screen -L -S upgradeEine Sitzung sauber beenden
Hier werden zwei Dinge gerne verwechselt: Das Ablösen mit Strg+A, dann d beendet die Sitzung nicht – sie läuft weiter und belegt weiter Ressourcen. Zum tatsächlichen Beenden gibt es diese Wege:
| Weg | Wirkung |
| exit eingeben | Beendet das aktuelle Fenster. War es das letzte Fenster, endet damit auch die Sitzung. Der sauberste Weg. |
| Strg+A, dann k | Beendet das aktuelle Fenster hart, nach einer Rückfrage („kill“). |
| Strg+A, dann \ | Beendet die komplette Sitzung mit allen Fenstern, ebenfalls nach Rückfrage. |
| screen -X -S upgrade quit | Beendet die Sitzung von außen, ohne sie vorher zu betreten. |
Und ein Punkt, der oft übersehen wird: Screen-Sitzungen überleben keinen Neustart des Servers. Screen ist ein Werkzeug für langlaufende, einmalige Aufgaben – kein Ersatz für einen richtigen Dienst. Was dauerhaft laufen soll, gehört als systemd-Service eingerichtet.
Praxisbeispiel: Upgrade über SSH
So sieht der typische Ablauf in der Praxis aus. Du meldest dich per SSH am Server an und startest zuerst die Screen-Sitzung – vor dem eigentlichen Befehl, das ist der entscheidende Punkt:
screen -S upgradeInnerhalb der Sitzung startest du das Upgrade:
sudo apt update && sudo apt upgrade -yLäuft es an, löst du dich mit Strg+A, dann d ab und kannst PuTTY beruhigt schließen. Später meldest du dich neu an und schaust nach:
screen -r upgradeIst das Upgrade durchgelaufen, beendest du die Sitzung mit exit.
Falls du zu spät daran denkst und der Befehl bereits ohne Screen läuft: Dann hilft Screen nicht mehr. Du kannst den Prozess mit Strg+Z anhalten und ihn mit bg und disown vom Terminal lösen, verlierst dabei aber die Ausgabe. Deshalb die Faustregel: Bei allem, was länger als ein paar Minuten dauert, zuerst Screen starten.
Screen anpassen mit der .screenrc
Screen liest beim Start die Datei .screenrc im Home-Verzeichnis. Die gibt es standardmäßig nicht, wir legen sie also an:
nano ~/.screenrcEin sinnvoller Einstieg mit vier Zeilen:
startup_message off
defscrollback 10000
altscreen on
hardstatus alwayslastline "%{= kG}[ %H ]%{= kw} %-w%{+b kG}[%n %t]%{-}%+w %=%{= kG}[ %d.%m.%Y %c ]"Was die einzelnen Zeilen bewirken:
| Einstellung | Bedeutung |
| startup_message off | Unterdrückt den Begrüßungsbildschirm beim Start. Spart bei jedem Start einen Tastendruck. |
| defscrollback 10000 | Erhöht den Verlaufsspeicher pro Fenster auf 10.000 Zeilen. Der Standardwert ist deutlich kleiner, wodurch längere Ausgaben nicht mehr vollständig zurückscrollbar sind. |
| altscreen on | Sorgt dafür, dass nach dem Verlassen von Programmen wie nano oder less der vorherige Bildschirminhalt wiederhergestellt wird. |
| hardstatus alwayslastline „…“ | Blendet in der untersten Zeile dauerhaft eine Statusleiste mit Hostname, allen Fenstern und Datum ein. Das aktuell aktive Fenster wird hervorgehoben. |
Die Zeichenfolge in der Statusleiste sieht kryptisch aus – das ist die Formatsprache von Screen, in der %H für den Hostnamen, %n für die Fensternummer und %t für den Fenstertitel steht. Du kannst die Zeile bedenkenlos so übernehmen.
Gespeichert wird in nano mit Strg+O, Enter und Strg+X. Die Änderungen gelten für alle neu gestarteten Sitzungen, bereits laufende Sitzungen bleiben unverändert.
Screen oder tmux?
Ehrlicherweise gehört an dieser Stelle ein Hinweis: Mit tmux gibt es einen moderneren Terminal-Multiplexer, der Bildschirmteilung, Konfiguration und Maussteuerung deutlich komfortabler löst und aktiver weiterentwickelt wird.
Screen hat trotzdem seine Berechtigung, und das ist kein Nostalgie-Argument: Es ist seit Jahrzehnten stabil, in praktisch jeder Distribution und auf jedem geerbten Altsystem verfügbar und für den Hauptzweck – der Prozess soll den Verbindungsabbruch überleben – vollkommen ausreichend. Wer sich neu einarbeitet und die freie Wahl hat, ist mit tmux gut bedient. Wer nur schnell ein Upgrade absichern will, kommt mit den drei Befehlen screen -S, Strg+A d und screen -r ans Ziel.
Abschluss
Damit kennst du die wesentlichen Funktionen von Screen: Sitzungen anlegen und benennen, sich ablösen und wieder verbinden, mit mehreren Fenstern arbeiten, den Bildschirm teilen und das Ganze über die .screenrc an deine Arbeitsweise anpassen.
Im Alltag brauchst du davon meist nur einen Bruchteil. Wenn du dir nur drei Dinge merkst, dann diese: screen -S name zum Starten, Strg+A, dann d zum Ablösen und screen -r name zum Zurückkehren. Alles andere kannst du dir bei Bedarf jederzeit über Strg+A, dann ? in Erinnerung rufen.


0 Kommentare