HowTo: RaspberryPI – Multitasking und „das mache ich später weiter“ mit Screen

Das Arbeiten in der Konsole hat ein paar Nachteile die nicht direkt ersichtlich sind. Zum Beispiel ist man es von Windows gewöhnt zwischen Fenstern wechseln zu können.
Mal eben in den Browser „hüpfen“ einen Link kopieren und wieder zurück in ein gleichzeitig geöffnetes Word-Dokument um den Link dort einzufügen ist in der Konsole auf den ersten Blick nicht möglich.

Auch Verbindungsprobleme können manchmal ärgerliche Folgen haben:
Steht euer RasPi zum Beispiel irgendwo in der Pampa und tut dort seinen Dienst als einsame Wetterstation mit ganz sporadischer Netzwerkverbindung so kann es schon Mal passieren, dass eure Konsolenverbindung unterbrochen wird. Dies hat auch zur Folge, dass eure Konsolenverbindung unterbrochen wird und damit auch alle auf dem RasPi von euch gestartete Prozesse beendet werden.

Wenn ihr gerade einen Prozess ausgeführt habt der 15 Minuten irgendwas wichtiges macht und nun ist euch zum dritten Mal die Verbindung nach 14 Minuten abgebrochen so fängt der eine oder andere so langsam an vor Wut an der Tischplatte zu kauen.

Um die Zähne zu schonen und auch manche Arbeitsabläufe zu vereinfachen wurde deswegen das Programm „Screen“ erfunden.

Dies ermöglicht es euch in einer Konsolensitzung mehrere virtuelle Konsolen zu starten, zwischen diesen zu wechseln und auch fortzuführen nachdem eure Verbindung unterbrochen und wiederhergestellt wurde.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/


Übersicht

Bevor mit der Installation von Screen begonnen werden kann solltet ihr den RaspberryPi soweit vorbereitet haben, dass dieser über das Netzwerk und mittels SSH erreichbar ist.
Die folgenden drei Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPI – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern

Benötigtes Werkzeug:
-keins-

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.


Per SSH auf dem RaspberryPi einloggen

Um zu beginnen müsst Ihr Euch als erstes mit Putty per SSH auf dem RasPi einloggen. Wie das geht ist im Artikel RaspberryPi - Den RaspberryPi über SSH steuern beschrieben.

Nach der Eingabe Eures Benutzernamen und Passworts könnt Ihr die ersten Befehle eingeben.

Paketverwaltung aktualisieren

Die Paketverwaltung in Linux ist eine "zentrale Stelle" über die sich diverse Software-Pakete installieren lassen. Damit dies zuverlässig funktioniert sollten vor jeder Installation von neuen Paketen die Listen und Quellen der Paketverwaltung aktualisiert werden.

Um das Update der Paketverwaltung zu starten müsst ihr folgenden Befehl eingeben.
sudo apt-get update && sudo apt-get upgrade
Je nachdem wie lange Euer letztes Update der Paketverwaltung her ist kann dieser Vorgang nun etwas dauern. Dabei werden zuerst die Listen aktualisiert in denen auf die einzelnen Paketquellen verwiesen wird.
Danach werden die Pakete selber aktualisiert. Da dabei zusätzlicher Speicher belegt wird, werdet Ihr nochmal nach Eurem Einverständnis gefragt. Dies müsst Ihr mit einem "J" und "Enter" bestätigen.
Ist die Aktualisierung abgeschlossen wird euch eine kleine Zusammenfassung über die Dauer und den Umfang des Updates angezeigt.

Screen installieren

Die Installation von Screen startet Ihr mit folgendem Befehl:

sudo apt-get install screen

Während der Installation der Updates und den darauf folgenden Pakete kann es zu Nachfragen kommen ob Ihr damit einverstanden seid, dass durch die zu installierenden Module zusätzlicher Speicherplatz belegt wird. Diese Nachfragen bestätigt ihr mit einem „j“ und Enter. Die Installation wird dann fortgesetzt.


Eine virtuelle Konsole mit Screen starten

Screen ist nun installiert und ihr wollt eure erste virtuelle Konsole starten. Diese Virtuelle Konsole wird auch dann weiter geführt, wenn eure reale Konsole beendet wird. Um nun von der realen Konsole aus eine virtuelle Konsole zu starten müsst ihr folgenden Befehl eingeben:

screen bash

Daraufhin werdet ihr euch in einer neuen/frischen virtuellen Konsolenumgebung wiederfinden die sich optisch nicht zu einer realen Konsolenumgebung unterscheidet. In dieser könnt ihr genauso arbeiten wie in der realen Konsolenumgebung.

Wenn ihr nun aber einen Prozess habt der sehr lange läuft so könnt ihr diesen, einmal in einer virtuellen Konsole gestartet, mit dem Tastendruck STRG+A+D in den Hintergrund verschieben. (Ihr drückt also erst STRG, haltet diese Taste gedrückt und drückt dann „A“ und dann danach „D“)

Die virtuelle Konsole verschwindet daraufhin und ihr befindet euch wieder in der realen Konsole. Diese könnt ihr nun auch schließen oder auch etwas Anderes machen. Eure Eingaben und Prozesse der virtuellen Konsole werden weiterhin gespeichert und im Hintergrund ausgeführt.

Ihr könntet nun auch eine weitere virtuelle Konsole starten und diese ebenso parallel zu der zuvor gestarteten virtuellen Konsole laufen lassen.


Alle Screen Instanzen anzeigen lassen

Um nun aus der realen Konsole wieder in die virtuelle Konsole zu wechseln sollte man sich zuerst einmal anzeigen lassen welche virtuellen Konsolen gerade aktiv sind. Dies geht mit folgendem Befehl:

screen –list

Nachdem Iihr diesen Befehl ausgeführt habt werden euch alle aktiven virtuellen Konsolen angezeigt.

In diesem Fall sind gerade zwei virtuelle Konsolen aktiv. Die obere hat den Namen „1435.pts-0.magicMirror“, wurde am 15.11.2017 um 15:59:40 Uhr gestartet und ist aktuell „detached“(=abgetrennt) also nicht mit der realen Konsole verbunden.

Die untere virtuelle Konsole hat den Namen „1413.pts-0.magicMirror“, wurde am 15.11.2017 um 15:50:35 Uhr gestartet und ist aktuell „detached“(=abgetrennt) also nicht direkt mit der realen Konsole verbunden.


Mit einer bestehenden Screen Instanz verbinden

Um nun eine virtuelle Konsole wieder so anzuzeigen, dass ihr darin arbeiten könnt gibt es im Prinzip zwei Möglichkeiten.

1. Möglichkeit

„screen –list“ zeigt euch nur eine im Hintergrund aktive virtuelle Konsole an:
In diesem Fall reicht der folgende Befehl:

screen –r

Dieser führt dazu, dass eure reale Konsole mit der einzigen verfügbaren virtuelle Konsole verbunden wird.


2. Möglichkeit

„screen –list“ zeigt euch mehrere, im Hintergrund aktive, virtuelle Konsolen an:

In diesem Fall müsst hier zusätzlich zum Befehl „screen –r“ auch noch den Namen der virtuellen Konsole angeben mit der ihr euch verbinden wollt.

Werden euch mit „screen –list“ zum Beispiel(wie auf dem BIld zu sehen) zwei virtuelle Konsolen mit den Namen „1435.pts-0.magicMirror“ und „1413.pts-0.magicMirror“ angezeigt und ihr wollt die virtuelle Konsole mit dem Namen „1435.pts-0.magicMirror“ öffnen so müsst ihr folgenden Befehl eingeben:

screen –r 1435.pts-0.magicMirror

Profi-Tipp:
In diesem Fall würde auch schon „screen -r 1435“ ausreichen, weil so auch schon eindeutig angegeben ist welche virtuelle Konsole verbunden werden soll.


Eine Screen Instanz beenden

Um eine aktive virtuelle Konsole zu beenden gibt es wieder zwei Möglichkeiten.

1. Möglichkeit:

Ihr verbindet euch mit der virtuellen Konsole die ihr schließen wollt und drückt STRG+D. Dies schließt die aktuell verbundene virtuelle Konsole ohne weitere Warnungen. Alternativ könnt ihr auch „exit“ eingeben. Auch dies beendet die aktive virtuelle Konsole.


2. Möglichkeit

Ihr befindet euch in der realen Konsole. Ähnlich wie das erneute Verbinden mit einer bestehenden Screen Instanz könnt ihr auch eine beenden.

Nehmen wir an ihr wollt die virtuelle Konsole mit dem Namen „wichtigeVirtuelleKonsole“ beenden. Dann müsst ihr folgenden Befehl eingeben:

screen -X -S wichtigeVirtuelleKonsole quit

Dies beendet die im Hintergrund laufende virtuelle Konsole ohne, dass ihr euch zuvor mit dieser verbinden müsst.

Ihr wisst nun also wie man „screen“ nutzen kann um auf dem RasPi verschiedene virtuelle Konsolen zu erstellen und zu verwalten.


Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

Fab

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com

Kommentar hinterlassen

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