Automatisch startende Programme auf dem Raspberry Pi

Lesezeit 4 min.

Raspberry Pi – Autostart und Neustart

Es gibt eine Reihe von Möglichkeiten, Programme beim Laden des Systems oder bei der Anmeldung automatisch ausführen zu lassen. Dazu gehören ‘cron’, ‘init’, Gnome Scheduler, aber in der neuesten Version von Raspbian wurde ein neues Programm namens ‘systemd’ hinzugefügt .

systemd

Hierbei handelt es sich um eine Reihe von Anwendungen, die zur Verwaltung des Betriebssystems verwendet werden. In dieser Funktion können Sie einen „Dienst“ (ein Programm) konfigurieren, den systemd automatisch verwalten soll. Wenn also zum Beispiel ein Programm nicht mehr reagiert, wird systemd den RPI Autostart ermöglichen. Diese Funktion ist besonders nützlich, wenn Sie den Raspberry Pi zur Überwachung oder zur Aufzeichnung von Messungen verwenden und nichts verpassen wollen, oder wenn Sie einen Roboter auf Basis des Raspberry Pi verwenden und ein Ausfall des Steuerprogramms den Verlust der Kontrolle bedeuten würde. Der Raspberry-Autostart ist eine Möglichkeit, das Programm einfach und schnell zurückzusetzen, ohne dass Daten verloren gehen oder das Programm heruntergefahren wird. Der Raspberry Pi Autorun hingegen ist die Möglichkeit, ein Programm automatisch zu starten, wenn das System hochfährt, wodurch die Zeit optimiert wird, die Sie nicht mehr damit verbringen müssen, jede Anwendung einzeln manuell zu öffnen.

Konfiguration

In diesem Beispiel wird ein in Python geschriebenes Skript ausgeführt, das bei jedem Start des Raspberry Pi ausgeführt wird. Dieses Skript wird zur Steuerung eines Roboters verwendet, der keine Bildschirm– oder Tastatureingabe hat, daher ist die Ausführung des Programms beim Systemstart unerlässlich. Ich habe das Skript im Home-Verzeichnis der „Pi“-Benutzer abgelegt:

/home/pi/DriveRobot.py

systemd verwendet Konfigurationsdateien namens ‘unit’, um ihnen zu sagen, was sie tun sollen. Lassen Sie uns eine für unseren Roboter erstellen. Öffnen Sie ein Terminalfenster und geben Sie die folgenden Befehle ein:

sudo nano /lib/systemd/system/driverobot.service

Jetzt tippen Sie dies:

[Unit]
Description=DriveRobot Service
After=multi-user.target

[Service]
Type=idle

User=pi
ExecStart=/usr/bin/python3 /home/pi/DriveRobot.py

Restart=always
RestartSec=0

[Install]
WantedBy=multi-user.target

Es gibt 3 Abschnitte in dieser Unit-Datei:

  • Abschnitt [Unit] enthält zwei Werte:
    • den Namen des Servicewertes („Description”)
    • Wenn das System geladen wird, sollte der Dienst starten (‘After’). In diesem Fall wird er nach dem systemd ‘multi-user’ Prozess gestartet, d.h. In dem Stadium, in dem Benutzerkonten auf dem System verfügbar sind. Dies geschieht, bevor Raspbian Desktop geladen wird. Wenn Ihr Raspberry also im Desktop-Modus geladen wird und Sie möchten, dass Ihr Programm in der Desktop-Benutzeroberfläche geladen wird, müssen Sie dies in ‘graphical.target’ ändern.
  • Abschnitt [Service] konfiguriert, was es ausführen soll und was es tun soll, wenn das Programm nicht mehr reagiert oder herunterfährt.
    • Die Optionen ‘Type’ und ‘idle’ weisen systemd an, zu warten, bis alle anderen Dienste beendet sind. Dadurch wird der Systemstart nicht verlangsamt.
    • Mit ‘User’ legen Sie fest, unter welchem Benutzer das Programm ausgeführt werden soll. In diesem Fall ist das der Standardbenutzer ‘pi’.
    • ‘ExecStart’ ist eine ausführbare Datei. In diesem Fall führt python3 das Skript DriverRobot.py aus. Beachten Sie, dass Sie den vollständigen Pfad des Programms, das Sie ausführen (python3), und des Skripts angeben müssen.
    • Die Einstellung ‘Restart’’ auf ‘always’ weist systemd an, den Bootvorgang zu überwachen und ihn zurückzusetzen, wenn er abbricht.
    • RestartSec’ weist systemd an, 0 Sekunden zu warten, bevor es Programme neu startet, wenn es heruntergefahren wird.
  • Letzter Abschnitt [Install] hat eine ‘WantedBy’-Anweisung. Das bedeutet, dass der driverobot-Dienst lose mit dem Multi-User-Dienst gekoppelt ist – er wird gestartet, nachdem der Multi-User-Dienst erfolgreich gestartet wurde.

Nach dem Speichern müssen die Dateiberechtigungen geändert werden:

sudo chmod 644 /lib/systemd/system/driverobot.service

Dadurch wird sie für alle lesbar, aber nur für den Besitzer überschreibbar.

systemd konfigurieren

Sobald die Datei erstellt wurde, informieren Sie systemd und führen Sie es aus, damit der driverobot-Dienst bei jedem Hochfahren des Raspberry Pi gestartet wird. Geben Sie die folgenden Anweisungen ein:

sudo systemctl daemon-reload
sudo systemctl enable driverobot.service

Dann starten Sie den Raspberry Pi neu.

Überprüfen des Status des driverobot-Dienstes

Wenn der Raspberry Pi neu startet, wird Ihr Skript ausgeführt. Sie können dies mit dem Befehl systemctl überprüfen:

sudo systemctl status driverobot.service

Das Ergebnis sollte in etwa so aussehen:

systemctl status

“Crash” Test

Es lohnt sich, zu überprüfen, ob systemd mit Code-Fehlern umgehen kann. Um dies zu simulieren, deaktivieren (‘kill’) Sie den Python-Prozess, der Ihr Skript ausführt. Um die Prozess-ID zu ermitteln, führen Sie Folgendes aus:

ps -ax | grep driverobot

Der Befehl sollte zwei Zeilen zurückgeben – eine für den python3 Prozess und eine für den ‘grep’, den Sie gerade ausgeführt haben. Die Kennung (pid) des Prozesses ist die erste Ziffer in der Zeile.

Obtaining the Process identity (pid)

Um Ihren Code zu stoppen, geben Sie ein:
kill -9 xxx

Dabei ist xxx die Prozess-ID, die Sie gerade gefunden haben.

Überprüfen Sie nun, ob Ihr Programm neu gestartet wurde, indem Sie einen Neustart durchführen:
ps -ax | grep driverobot

Checking the service has restarted

Wenn systemd seine Arbeit korrekt ausführt, sollten Sie sehen, dass der Prozess python3 immer noch läuft, aber diesmal mit einer anderen Prozess-ID.

Jetzt können Sie Ihren Code oder ein beliebiges Programm jedes Mal ausführen, wenn Sie Ihren Rasberry Pi hochfahren, und ihn die ganze Zeit laufen lassen!

Welche zusätzliche Software sollte auf dem Raspberry Pi installiert werden?

  • Iceweasel (Firefox) – Browser
  • Chromium (Chrome) – Browser
  • Midori – Browser
  • LibreOffice – Office-Paket
  • Inkscape – Grafikprogramm
  • GIMP – Grafikprogramm
  • Pinta – Grafikprogramm
  • scrot – Screenshot
  • mc – Midnight Commander – Dateiverwaltung
  • 7zip – Datenkomprimierung
  • Gparted – Software zur Partitionsverwaltung

Grundlegende Raspberry Pi-Befehle

Lernen Sie die wichtigsten Befehle für den Raspberry Pi kennen, damit Ihr Gerät noch effizienter läuft. Dazu gehören Befehle wie:

  • df / -h – verfügbarer Speicherplatz auf der SD-Karte
  • free -h – Informationen zur Speichernutzung
  • date – aktuelle Uhrzeit
  • sudo su – Benutzer root
  • sudo raspi-config – starten Sie das Programm Raspi-config, um das System neu zu konfigurieren.
  • sudo reboot – RPI neu starten
  • sudo shutdown -h now – Vorbereitung auf das Herunterfahren
  • exit – meldet sich von der aktuellen System-Shell/SSH-Sitzung ab

Wie fangen Sie also mit dem RPI an? Um Raspberry Pi start zu ermöglichen, müssen Sie das Betriebssystem auf eine USB- oder SD-Karte hochladen. Sie müssen dies nicht manuell tun, da es spezielle Programme gibt, die dies für Sie tun. Außerdem formatieren sie die Karte vorher, damit nichts darauf gespeichert ist. Das ist kein kompliziertes Verfahren, so dass auch ein Laie es durchführen kann. Viel Glück!

Quelle: https://thepihut.com/blogs/raspberry-pi-tutorials/auto-starting-programs-on-the-raspberry-pi

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.8 / 5. Stimmenzahl: 5

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Teilen:

Picture of Maciej Chmiel

Maciej Chmiel

Specjalista od Arduino i szeroko rozumianej elektroniki. Człowiek-orkiestra, dyżurny od wszystkiego - nie ma dla niego rzeczy niemożliwych, a czas ich realizacji jest zwykle prawie natychmiastowy. Po pracy miłośnik kreskówek z Pepe Panem Dziobakiem. Jego bezcenne memy wspomagają dział kreatywny.

Siehe mehr:

Schreibe einen Kommentar

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

Aus Sicherheitsgründen ist die Verwendung des reCAPTCHA-Dienstes von Google erforderlich, der den Google-Datenschutzbestimmungen und Nutzungsbedingungen unterliegt..