Dienstag, 16. Oktober 2012

screen - Einsatz virtueller Konsolen

Virtuelle Konsolen nutze ich immer, wenn Programme ausgeführt werden sollen, die eine längere Zeit laufen z.B. LVM Migrationen und man nicht die ganze Zeit eine direkte Verbindung zum Server hat. Dies kann durch eine entsprechende Netzwerkkonfiguration gegeben sein, indem die Verbindung nach mehreren Minuten Inaktivität gekappt wird, oder auch über einen VPN Zugang notwendig sein, der sich jede halbe Stunde vom Netz trennt.

Der Vorteil von virtuellen Konsolen über screen liegt darin, dass man eine Session im Hintergrund weiter läuft und Stunden später wieder an dem Punkt aufgerufen werden kann, an dem man sich disconnected hat. Weiterhin kann man mit einer direkt Verbindung auf dem System mit mehreren Sessions arbeiten, was zur Reduktion der SSH Verbindungen führt.

Auf einigen Distributionen ist screen nicht in der Standard-Installation vorhanden, kann aber einfach über das Paketmanagement nachinstalliert werden. Das Paket sollte auf allen Distributionen auch screen lauten.

Der Start erfolgt durch die einfache Eingabe von screen. Danach befinden wir uns bereits in einer Virtuellen Session.

root@system:~# screen

Screen version 4.00.03jw4 (FAU) 2-May-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program (see the file COPYING); if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to
screen@uni-erlangen.de


                  [Press Space for next page; Return to end.]

Eingabe Enter oder Space


root@system:~#

Diese neu erzeuge Session können wir über einen Parameter von screen anzeigen lassen:

root@system:~# screen -ls
There are screens on:
        3247.pts-2.system       (06.10.2012 10:04:31)   (Attached)
1 Sockets in /var/run/screen/S-root.

Um für die nächsten Schritte eine bessere Übersicht zu bekommen geben wir im Nächsten Schritt folgenden Befehl ein:

root@system:~# echo "Virtuelle Instanz"

Virtuelle Instanz
root@system:~#


Nun trennen wir die Sitzung (detach) um sie in den Hintergrund zu schicken. Dies wird etwas trickreicher als bisher unter Linux gewohnt.

Um dies zu erreichen müssen folgende Tasten gleichzeitig gedrückt werden:  Strg+a und d  für die Kommandoübergabe an Screen um die Instanz in den Hintergrund zu schicken.

root@system:~# screen
[detached from 3247.pts-2.system]
root@system:~#

Über die erneute Eingabe von screen -ls sehen wir nun, dass die Screen Session nun getrennt ist  und somit im Hintergrund läuft:

root@system:~# screen -ls
There is a screen on:
        3247.pts-2.system       (06.10.2012 10:04:31)   (Detached)
1 Socket in /var/run/screen/S-root.


Um jetzt wieder auf die vorherige Session zu kommen erreichen wir dies durch den Parameter -r von Screen und unter angabe der Session-ID 3247.pts-2.system:

root@system:~# screen -r 3247.pts-2.system

Als Ergebnis präsentiert sich folgendes uns bereits bekanntes Bild der vorherigen Session:

root@desktop-system:~# screen -ls
There is a screen on:
        3247.pts-2.system       (06.10.2012 10:04:31)   (Attached)
1 Socket in /var/run/screen/S-root.

root@desktop-system:~# echo "Virtuelle Instanz"
Virtuelle Instanz
root@desktop-system:~#

Keine Kommentare:

Kommentar posten