Website-Suche

So starten Sie ein Python-Skript automatisch auf dem Raspberry Pi


Viele Benutzer möchten, dass ihr Raspberry Pi Aufgaben unbeaufsichtigt ausführt, um den Raspberry Pi zu automatisieren. Dies reduziert repetitive Aufgaben, die normalerweise in den Schoß des Administrators fallen. Eine gängige Methode zum Auslösen automatischer Ereignisse ist der erste Start des Raspberry Pi. Eine solche Konfiguration ermöglicht es uns, bei jedem ersten Start des Raspberry Pi automatisch ein Python-Skript zu starten.

In diesem Tutorial lernen Sie verschiedene Möglichkeiten kennen, ein Python-Skript auf einem Raspberry Pi automatisch zu starten, wenn das Gerät startet. Dies wird entweder durch crontab- oder systemd-Timer erleichtert, die beide standardmäßig auf dem Raspberry Pi OS installiert sind, sodass Sie keine zusätzlichen Anwendungen oder Dienste herunterladen oder installieren müssen.

In diesem Tutorial lernen Sie:

  • So bearbeiten Sie crontab, um beim Systemstart ein Python-Skript auszuführen
  • So erstellen Sie einen Systemd-Timer, um beim Systemstart ein Python-Skript auszuführen

Starten Sie das Python-Skript automatisch über Crontab auf dem Raspberry Pi

Die erste Methode, die wir uns ansehen werden, ist wahrscheinlich die einfachere von beiden, da nur eine einfache Bearbeitung der Crontab-Datei erforderlich ist, um unser Python-Skript so einzurichten, dass es bei jedem Start des Raspberry Pi automatisch ausgeführt wird.

HINWEIS
Unsere Optionen mit crontab sind im Vergleich zur systemd-Methode etwas spärlich. Wenn Sie also mehr Flexibilität benötigen, als cron bietet, können Sie fortfahren zu diesem Abschnitt weiter unten.

  1. Öffnen Sie zunächst ein Befehlszeilenterminal und führen Sie den Befehl crontab aus. Beachten Sie, dass jeder Benutzer über eine eigene Crontab-Datei verfügt. Öffnen Sie den Editor daher unbedingt mit dem Benutzer, unter dem Sie das Python-Skript ausführen möchten.

    
    $ crontab -e
    
  2. Wenn Sie crontab zum ersten Mal öffnen, werden Sie gefragt, welchen Editor Sie verwenden möchten. Am einfachsten zu verwenden wäre Nano. Wählen Sie daher im Zweifelsfall diese Option.

  3. Verwenden Sie die folgende Syntax, um Ihr Python-Skript hinzuzufügen, das Cron bei jedem Neustart ausführen soll. Wir verwenden die @reboot-Deklaration, um anzugeben, dass das Python-Skript jedes Mal ausgeführt werden soll, wenn der Raspberry Pi hochgefahren wird:

    
    @reboot /home/linuxconfig/myscript.py
    

    Speichern Sie Ihre Änderungen und schließen Sie die Datei, wenn Sie fertig sind.

Starten Sie das Python-Skript automatisch über systemd auf dem Raspberry Pi

Wir können auch systemd (das Standard-Init-System) des Raspberry Pi verwenden, um eine Dienstdatei zu erstellen, die beim Booten ausgeführt wird.

  1. Erstellen Sie zunächst eine Systemd-Dienstdatei wie im folgenden Beispiel. Wir speichern diese Datei als etc/systemd/system/python-script.service

    [Unit]
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/my-python-script.py
    
    [Install]
    WantedBy=default.target

    Nachher: Weist systemd an, wann das Python-Skript ausgeführt werden soll. In unserem Fall wird das Python-Skript nach der Netzwerkverbindung ausgeführt. Ein anderes Beispiel könnte mysql.target usw. sein.
    ExecStart: Dieses Feld enthält einen vollständigen Pfad zum eigentlichen Skript, das beim Start ausgeführt werden soll
    WantedBy: In welches Boot-Ziel die systemd-Einheit installiert werden soll

  2. Stellen Sie sicher, dass Sie das Python-Skript erstellt haben, auf das sich Ihr neuer Systemd-Timer oben bezieht. Wenden Sie dann die entsprechenden Berechtigungen auf die Datei an, damit systemd sie ausführen kann. Anschließend wenden wir die entsprechenden Berechtigungen auf die systemd-Timerdatei an.

    
    $ sudo chmod 744 /usr/local/bin/my-python-script.py
    $ sudo chmod 664 /etc/systemd/system/python-script.service
    
  3. Als nächstes aktivieren Sie die Serviceeinheit:

    
    $ sudo systemctl daemon-reload
    $ sudo systemctl enable python-script.service
    

    Alles erledigt. Sie sollten sehen, dass Ihr Python-Skript beim nächsten Neustart Ihres Raspberry Pi sowie bei allen nachfolgenden Systemstarts ausgeführt wurde.

Schlussgedanken

In diesem Tutorial haben wir gesehen, wie man beim Start eines Raspberry Pi-Systems automatisch ein Python-Skript startet. Es gibt zwei Möglichkeiten, dieses Setup zu konfigurieren: entweder Cron oder das Erstellen eines Systemd-Timers. Für beide können eigene zusätzliche Optimierungen vorgenommen werden, sodass je nach Ihrer Situation und dem Skript, das Sie ausführen möchten, möglicherweise eine besser funktioniert als die andere. Beide lassen sich recht einfach installieren. Probieren Sie also einfach beide aus und finden Sie heraus, welches für Sie am besten geeignet ist.

Verwandte Artikel: