Ubuntu Screen Guide: Sessions & Hintergrund-Prozesse

Überblick

Wer administrative Aufgaben auf entfernten Ubuntu-Servern über SSH abwickelt, steht häufig vor dem Risiko plötzlicher Netzwerkunterbrechungen, die laufende Jobs vorzeitig abbrechen. Das bewährte Terminal-Tool screen löst dieses Problem zuverlässig durch das Entkoppeln von Konsolensitzungen vom aktiven Verbindungsstatus. Das folgende Handbuch beschreibt praxisnah die Steuerung langlebiger Hintergrundprozesse, den Umgang mit aktiven und getrennten Instanzen, das Bereinigen fehlerhafter Sockets sowie die gezielte Anpassung der Benutzerkonfiguration.

Installation, Instanzerstellung und Statusabfrage

Vor den praktischen Beispielen empfiehlt es sich, den Paketindex des Systems auf den aktuellen Stand zu bringen und das Werkzeug screen über die Paketverwaltung zu beziehen.

screen via APT installieren

Mit dem Aufruf von screen -version lässt sich die erfolgreiche Bereitstellung des Dienstes samt installierter Revisionsnummer auf der Konsole verifizieren.
Die resultierende Rückmeldung bestätigt, dass das Dienstprogramm betriebsbereit im Systempfad liegt.
⚙️ [Zentrale Parameter]

-S : Weist der neu anzulegenden Sitzung eine benutzerdefinierte Bezeichnung zu.
-ls : Gibt sämtliche registrierten Sitzungen samt aktuellem Verbindungsstatus aus.
-d : Löst eine aktive Sitzung von der Anzeige und verlagert sie in den Hintergrund (Detach).
-m : Erzwingt das Erzeugen einer neuen Instanz, ideal zum direkten Starten von Hintergrundaufgaben.
-r : Verbindet das Terminal erneut mit einer zuvor abgetrennten Sitzung (Attach).
-wipe : Entfernt nicht mehr erreichbare oder unsauber beendete Sitzungseinträge aus der Liste.

screen Versionsausgabe prüfen

Möchte man eine Routine im Hintergrund ausführen, ohne manuell in das Multiplexer-Fenster einzutauchen, bietet sich die Syntax screen -S backup_task -d -m sleep 60 an.
Das Argument -S backup_task vergibt einen wiedererkennbaren Namen, während das Flag-Paar -d -m die Ausführung des Befehls sleep 60 sofort abgetrennt im Hintergrund initiiert.

Hintergrundsitzung ohne Anbindung starten

Zur Überprüfung sämtlicher gegenwärtig aktiver Instanzen dient die Anweisung screen -ls.
In der Auflistung erscheint der soeben erzeugte Job backup_task mitsamt Prozess-ID und dem Vermerk Detached, was den stabilen Lauf im Hintergrund belegt.

Laufende Screen-Sitzungen auflisten

Hintergrundjobs anstoßen und Protokolle überwachen

Für einen praxisnahen Ablauf erzeugt mkdir -p ~/screen_demo && echo '작업 준비 완료' > ~/screen_demo/task.log eine eigene Arbeitsumgebung nebst anfänglicher Logdatei.

Arbeitsverzeichnis und initiale Logdatei anlegen

Das Kommando screen -S build_job -d -m bash -c 'for i in {1..5}; do echo "진행 단계: $i" >> ~/screen_demo/task.log; sleep 1; done' stößt eine Schleifenoperation direkt im Hintergrund an, ohne die interaktive Shell zu blockieren.
Hierbei wird über -S build_job ein aussagekräftiger Bezeichner gesetzt, während -d -m dafür sorgt, dass die fünfsekündige Schreibroutine autonom abläuft.

Automatisierten Schreibvorgang im Hintergrund ausführen

Ein erneuter Aufruf von screen -ls verschafft einen Überblick über das Gesamtsystem.
Die Ausgabe visualisiert, dass sowohl die neue Instanz build_job als auch der zuvor gestartete backup_task parallel und voneinander isoliert im Status Detached verweilen.

Parallele Sitzungen in der Übersicht

Um den Fortschritt des Hintergrundskripts nachzuvollziehen, pausiert sleep 2 && cat ~/screen_demo/task.log kurz die Ausführung und liest anschließend die Datei aus.
Die sukzessiv erfassten Zeilen bestätigen, dass der Prozess ohne manuelles Eingreifen planmäßig Zeilen in das Zielprotokoll schreibt.

Fortschritt im Logfile kontrollieren

Verwaiste Instanzen auflösen und Umgebungszustand bereinigen

Zum Simulieren eines kontrollierten Abbruchs wird zunächst via screen -S zombie_task -d -m sleep 100 ein langlebiger Dummy-Prozess initiiert.
Über -S zombie_task in Kombination mit -d -m startet der Ruhezustand über 100 Sekunden isoliert im Hintergrund.

Testsession zur Prozessbeendigung anlegen

Das Ausführen von screen -ls zeigt den aktuellen Systemstand.
Mit zombie_task sind nun drei separate Instanzen parallel registriert und im abgetrennten Zustand aktiv.

Drei aktive Hintergrundinstanzen einsehen

Soll ein Prozess von außerhalb der Sitzung terminiert werden, bewirkt screen -S zombie_task -X quit ein geordnetes Schließen.
Der Parameter -X quit sendet das Abbruchsignal gezielt an die Instanz zombie_task, wodurch Prozess und Sitzungsumgebung sauber beendet werden.

Instanz remote terminieren

Manchmal hinterlassen abrupt abgebrochene Verbindungen inkonsistente Socket-Dateien; hier bereinigt screen -wipe verwaiste Einträge.
Das Tool prüft bestehende Kommunikationsendpunkte und entfernt unbrauchbare Verweise, sodass lediglich intakte Sitzungen wie build_job und backup_task erhalten bleiben.

Socket-Verzeichnis bereinigen

Eine abschließende Statusprüfung mittels screen -ls dokumentiert das Bereinigungsergebnis.
Die terminierte Testinstanz wurde vollständig aus der Tabelle entfernt, während die verbleibenden Produktivaufgaben stabil weiterlaufen.

Bereinigte Sitzungstabelle ausgeben

Puffergröße erweitern und Statusleiste in screenrc anpassen

Zur individuellen Konfiguration des Werkzeugs legt touch ~/.screenrc die benutzerspezifische Einstellungsdatei im Home-Verzeichnis an.

Persönliche Konfigurationsdatei anlegen

Damit zurückliegende Konsolenausgaben bei umfangreichen Logs nicht verloren gehen, hebt echo 'defscrollback 5000' >> ~/.screenrc den Zeilenpuffer auf 5.000 Zeilen an.

Terminalpuffer auf 5000 Zeilen vergrößern

Um Orientierung bei mehreren Fenstern zu gewährleisten, fügt echo 'caption always "%{= kw}%-w%{= wk}%n %t%{-}%+w = %H"' >> ~/.screenrc eine permanente Fußleiste mit Fenstertiteln und Rechnernamen ein.

Permanente Statusleiste konfigurieren

Mit tail -n 2 ~/.screenrc lässt sich die fehlerfreie Übernahme beider Parameter kontrollieren.
Die Textausgabe belegt, dass sowohl die Puffervergrößerung als auch das Layout der Statusleiste am Dateiende hinterlegt sind.

Zuletzt hinzugefügte Direktiven prüfen

Mit diesen Handgriffen lassen sich zeitintensive Prozesse auf Ubuntu-Systemen dauerhaft absichern. Dank virtueller Sitzungen und Hintergrundausführung führen Verbindungsabbrüche im Administrator-Alltag künftig zu keinem Daten- oder Arbeitsverlust mehr.