Screen

Wird mit dem Raspberry Pi experimentiert, verschafft man sich häufig per SSH zugriff auf den kleinen Computer.  SSH bietet eine textbasierte Schnittstelle, indem es auf dem entfernten Computer, in diesem Fall dem Raspberry Pi  eine Shell erzeugt. Nach der Verbindung werden alle Befehle, die Sie in Ihrem lokalen Terminal eingeben, an den entfernten Server gesendet und dort ausgeführt. Soweit so gut.

Bei Verwendung von SSH bemerkt man früher oder später, dass ein gestarteter Prozess beendet wird, wenn die SSH Verbindung getrennt wird.  Oftmals spielt dies keine Rolle, wenn aber der Raspberry Pi, wie in meinem Fall, weiterhin Messwerte aufzeichnen soll, blieb nur die Möglichkeit die SSH Verbindung bestehen zu lassen. Hin und wieder kam es aber zu ungewollten Unterbrechungen in der SSH Verbindung, so dass die Anwendung zur Messwert Aufzeichnung (in meinem Fall ein Python Programm) beendet wurde. Die Aufzeichnung der Messreihe musste neu gestartet werden. Auf Dauer ist dieses Vorgehen unbefriedigend.

Abhilfe schafft das Programm Screen. Hiermit ist es möglich verschiedene virtuelle Sitzungen zu erzeugen, zwischen denen hin und her geschaltet werden kann. Für das oben beschriebene Problem der Programmabbrüche hat Screen zusätzlich die angenehme Eigenschaft, dass Anwendungen im Hintergrund weiterlaufen, auch wenn die SSH-Verbindung getrennt wird.

Die Vorgehensweise ist wie folgt:

Zunächst muss Screen installiert werden (nur einmal vor der ersten Nutzung erforderlich):

sudo apt update
sudo apt install screen

Dann Screen aufrufen:

screen

Als nächstes die Anwendung starten, welche auch nach Unterbrechung der SSH-Verbindung im Hintergrund weiterlaufen soll:

python3 eigene_anwendung.py

Danach kann diese Sitzung durch folgende  Tastenkombination verlassen werden:

Strg-A D

Hiermit wird nur die Virtuelle Sitzung unter Screen verlassen. Das gestartete Python Programm läuft im Hintergrund weiter. Nun kann auch die SSH-Verbindung getrennt werden, was jetzt nicht mehr zum Abbruch des Python-Programms führt.

Die virtuelle Sitzung unter Screen kann später wieder aufgerufen werden. Dazu wieder per SSH eine Verbindung zum Raspberry-Pi herstellen. Mit dem folgenden Befehl gelangt man dann  wieder zum Python-Programm:

screen -r