Virtuelle Screens unter Linux im Textmodus


Nicht jeder Linux-Server hat und braucht eine grafische Oberfläche. Denken wir nur an die ganzen entfernt stehenden Rootserver, die ja mittlerweile aufgrund des Preisverfalls praktisch für jeden erschwinglich sind. Eine grafische Oberfläche ist hier normalerweise nicht notwendig und auch nur in Ausnahmefällen installiert, die freien Ressourcen gibt man meist besser dem Server zum Erfüllen seiner eigentlichen Aufgaben.

Auch auf solchen Servern kommt es vor, daß man Programme startet, die voraussichtlich lange laufen werden, und auch dann weiter laufen wenn die ssh-Verbindung getrennt wird. Normalerweise werden die vom User gestarteten Prozesse vom System beendet, wenn die Verbindung getrennt wird (und sei es nur, weil das Timeout der Fritzbox mal wieder nach 10 Minuten die Verbindung automatisch trennt). Kommt man an den Platz zurück und loggt sich wieder ein, so darf man von vorne beginnen. Oft kann man nicht mal wirklich sagen ob der Prozess regulär beendet wurde weil er seine Arbeit beendet hat oder ob das System ihn beendete.

In solchen Fällen hilft screen, ein GNU Tool, mit dem man virtuelle Konsolen erschaffen und hinterlassen kann, die auch weiterlaufen wenn der User sich abmeldet. Nach einer neuen Anmeldung kann man sich den virtuellen Schirm wieder aufrufen und sehen wie weit der Prozess fortgeschritten ist oder sogar beendet wurde.

Screen installieren

Unter debian / ubuntu ist das wie üblich sehr leicht, unter anderen Linux Distributionen sollte es auch entsprechend verfügbar sein:

root@server:~# apt-get install screen

Screen wird damit automatisch heruntergeladen und installiert.

Virtuelle Konsole starten

Ruft man screen ohne weitere Parameter auf, so wird automatisch eine neue virtuelle Konsole geöffnet, die auf Eingaben wartet. Allerdings kann (und wird) man auch ein Programm angeben, das gleich in dieser virtuellen Konsole ausgeführt werden soll:

root@server:~# screen /pfad/zum/lang/laufenden/programm <weitere parameter>

Das Programm wird gestartet und läuft wie üblich. Ohne das zuvor gestartete Programm nun zu beenden kann man mit der Tastenkombination STRG+A und danach D die virtuelle Konsole verlassen. Das Programm läuft jetzt weiter und man könnte die Verbindung trennen.

Arbeiten mit virtuellen Konsolen

Mit screen -ls kann man sich eine Liste aller aktiven virtuellen Konsolen ausgeben lassen um davon eine auszuwählen und sich damit zu verbinden:

root@server:~# screen -ls
There are screens on:
14545.pts-1.server (Detached)
13052.pts-1.server (Detached)
2 Sockets in /var/run/screen/S-root.

root@server:~#

Möchte man nun eine Konsole wieder nach vorne holen, gibt man screen -dr <Bezeichnung> ein. Wenn nur eine virtuelle Konsole existiert, kann man <Bezeichnung> auch weg lassen, dann wird automatisch die einzig vorhandene virtuelle Konsole aktiviert.

Vote for articles fresher than 30 days!
Current karma: none, 0 vote(s) 2077 hits
Defined tags for this entry: , , ,

Comments

Display comments as (Linear | Threaded)

    No comments


Add Comment


Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

You can use [geshi lang=lang_name [,ln={y|n}]][/lang] tags to embed source code snippets
BBCode format allowed