Screen unter Ubuntu – Terminal-Sitzungen, die nicht abbrechen

Screen unter Ubuntu – Terminal-Sitzungen, die nicht abbrechen

16. August 2026 | Server, Netzwerk und Hosting | 0 Kommentare

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 --version

Kommt 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 -y

Zur Erläuterung:

Befehl / OptionBedeutung
sudo apt updateAktualisiert die lokalen Paketlisten. Ohne diesen Schritt greift APT unter Umständen auf veraltete Versionsangaben zurück.
sudo apt install screenInstalliert das Paket „screen“ aus den offiziellen Ubuntu-Quellen.
-yBeantwortet die Rückfrage „Möchtest du fortfahren?“ automatisch mit Ja. Praktisch bei bekannten, unkritischen Installationen.
screen –versionGibt 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:

screen

Der 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.8

Und 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 -ls

Die 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 upgrade

Der 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 upgrade

Das -d löst die alte, tote Verbindung zwangsweise ab und -r verbindet dich neu.

Die wichtigsten Kommandozeilen-Optionen im Überblick:

OptionBedeutung
screenStartet eine neue, unbenannte Sitzung.
screen -S nameStartet eine neue Sitzung mit dem angegebenen Namen.
screen -lsListet alle vorhandenen Sitzungen mit PID, Name und Status auf.
screen -r nameBetritt eine abgelöste Sitzung wieder („reattach“).
screen -d -r nameLöst eine noch als aktiv geltende Sitzung ab und betritt sie neu. Der Standardweg nach einem Verbindungsabbruch.
screen -x nameBetritt eine Sitzung zusätzlich, ohne die bestehende Verbindung abzulösen. Beide Bildschirme zeigen dasselbe – ideal, um jemandem etwas zu zeigen.
screen -X -S name quitBeendet eine Sitzung von außen, ohne sie vorher zu betreten.
screen -wipeRäumt Sitzungen aus der Liste, die als „Dead“ markiert sind.
screen -L -S nameStartet 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.

TastenkombinationFunktion
Strg+A, dann cLegt ein neues Fenster an.
Strg+A, dann nWechselt zum nächsten Fenster („next“).
Strg+A, dann pWechselt zum vorherigen Fenster („previous“).
Strg+A, dann 0 bis 9Springt 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 ABenennt das aktuelle Fenster um. Sehr zu empfehlen, damit die Liste lesbar bleibt.
Strg+A, dann Strg+ASpringt 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.

TastenkombinationFunktion
Strg+A, dann STeilt den Bildschirm waagerecht (Großbuchstabe S).
Strg+A, dann |Teilt den Bildschirm senkrecht.
Strg+A, dann TabSpringt in den nächsten Bereich.
Strg+A, dann XSchließt den aktuellen Bereich. Das darin angezeigte Fenster selbst bleibt bestehen.
Strg+A, dann QSchließ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 upgrade

Eine 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:

WegWirkung
exit eingebenBeendet das aktuelle Fenster. War es das letzte Fenster, endet damit auch die Sitzung. Der sauberste Weg.
Strg+A, dann kBeendet 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 quitBeendet 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 upgrade

Innerhalb der Sitzung startest du das Upgrade:

sudo apt update && sudo apt upgrade -y

Lä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 upgrade

Ist 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 ~/.screenrc

Ein 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:

EinstellungBedeutung
startup_message offUnterdrückt den Begrüßungsbildschirm beim Start. Spart bei jedem Start einen Tastendruck.
defscrollback 10000Erhö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 onSorgt 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.

Wie hat dir dieser Beitrag gefallen?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Hier schreibt: Thomas

Hier schreibt: Thomas

Ich heiße Thomas und bin Inhaber einer Agentur für eCommerce und Online Marketing. Zusätzlich interessiere ich mich für CMS Systeme, Wordpress, Drupal, Grafik und Multimedia. Ihr findet mich auf Twitter und Facebook. Über einen Kommentar zu diesem Beitrag würde ich mich freuen.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Blog via E-Mail abonnieren

Gib Deine E-Mail-Adresse an, um diesen Blog zu abonnieren und Benachrichtigungen über neue Beiträge via E-Mail zu erhalten.

Schließe dich 2.594 anderen Abonnenten an

In eigener Sache

Mit einem Stern (*) markierten Links sind Affiliate-Links. Wenn du einen Kauf über diese Links tätigst, bekomme ich eine Provision und du unterstützt aktiv diesen Blog. Für dich ändert sich der Preis nicht.

Wichtig: Ich empfehle nur Produkte, die ich selbst verwende und/oder von denen ich überzeugt bin. Vielen Dank für deine Unterstützung!