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.
-
Ö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
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.
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.
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 sollStellen 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
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.