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.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Overview

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.
The following three articles describe what needs to be done to prepare the RaspberryPi:
RaspberryPi – setup for nerdiys!
RaspberryPI - The First Configuration!
RaspberryPi – Control the RaspberryPi via SSH

Required tool:
-no-

Required material:

In the following list you will find all the parts you need to implement this article.


Log in to the RaspberryPi via SSH

To start, you must first log in to the Rasp Pi with Putty via SSH. How to do this is in the article RaspberryPi - Control the RaspberryPi via SSH described.

After entering your username and password you can enter the first commands.

Update package management

The package management in Linux is a "central place" through which various software packages can be installed. In order for this to work reliably, the lists and sources of the package management should be updated before each installation of new packages.

To start the update of the package management you have to enter the following command.
sudo apt-get update && sudo apt-get upgrade
Depending on how long ago your last update of the package management was, this process can now take a while. The lists that refer to the individual package sources are updated first.
After that, the packages themselves are updated. Since additional memory is occupied, you will be asked again for your consent. You have to confirm this with a "J" and "Enter".
Once the update is complete, you will see a small summary of the duration and scope of the update.

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.


Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert


The reCAPTCHA verification period has expired. Please reload the page.