Es gibt viele Gründe, warum Sie jedes Mal, wenn Ihr Raspberry Pi hochfährt, ein Python-Skript, eine App oder einen anderen Skripttyp (z. B. ein Bash-Skript) ausführen möchten. Vielleicht haben Sie einen Roboter oder ein IoT-Gerät, das bereit sein muss, eine Aufgabe auszuführen, sobald der Raspberry Pi, der es mit Strom versorgt, hochfährt. Oder vielleicht möchten Sie einfach ein bestimmtes Programm immer im Hintergrund laufen lassen und es nicht bei jeder Sitzung manuell starten müssen.
Es gibt eine Reihe von Möglichkeiten, ein Skript automatisch beim Hochfahren des Raspberry Pi zu starten, aber am einfachsten ist es, crontab zu verwenden, eine Planungsfunktion, mit der Sie auch Skripts so einstellen können, dass sie zu bestimmten Zeiten ausgeführt werden.
So führen Sie ein Skript beim Raspberry Pi Boot aus
1. Bearbeiten Sie Ihre Crontab-Liste, indem Sie Folgendes eingeben:
Sie können crontab starten, ohne sudo einzugeben, aber wenn Sie dies tun, können Sie keine Skripts ausführen, die Administratorrechte erfordern. Tatsächlich erhalten Sie eine andere Liste von Crontabs, wenn Sie sudo nicht verwenden. Vergessen Sie also nicht, es weiterhin zu verwenden oder nicht zu verwenden.
2. Wählen Sie nano aus, wenn Sie aufgefordert werden, nach einem Bearbeiter zu fragen.
Eine Datei wird geöffnet.
3. Fügen Sie am Ende der Datei eine Zeile hinzu, die so lautet:
Die Zeile muss mit @reboot beginnen, was bedeutet, dass sie jedes Mal ausgeführt werden soll, wenn Sie den Raspberry Pi booten. Wenn es sich um ein Python-Skript handelt, sollten Sie den Befehl zum Starten des python- oder python3-Interpreters eingeben, gefolgt vom vollständigen Pfad zu Ihrem Python-Skript.
Wenn es sich um ein Bash-Skript oder eine andere App handelt, geben Sie einfach den vollständigen Pfad dazu ein.
4. Speichern und beenden. In Nano tun Sie das, indem Sie STRG + X drücken, Y antworten und die Eingabetaste drücken, wenn Sie dazu aufgefordert werden.
5. Machen Sie Ihr Skript ausführbar, wenn es sich um ein Bash-Skript handelt. Python-Skripte müssen nicht ausführbar sein, da der Python-Interpreter dies bereits ist. Sie können jedes Skript durch Eingabe ausführbar machen
Wenn Sie Ihr Skript aus der Crontab entfernen möchten, geben Sie einfach sudo crontab -e erneut ein und entfernen oder kommentieren Sie diese Zeile aus. Beachten Sie, dass Sie, wenn Sie ein Projekt erstellen, für das Sie keine Fensterumgebung verwenden müssen, Systemressourcen sparen können, indem Sie den Raspberry Pi so konfigurieren, dass er über die Befehlszeile startet, indem Sie sudo raspi-config eingeben und dann zu Boot Options navigieren – > Desktop / CLI und wählen Sie Konsolen-Autologin aus.
So führen Sie ein Skript oder eine App in der Raspberry Pi-GUI automatisch aus
Wenn Sie möchten, dass Ihr Skript oder Ihre App beim Start von Raspberry Pi in der Fenster-GUI ausgeführt wird, befolgen Sie diese Schritte.
1. Erstellen Sie eine Datei namens myapp.desktop (oder etwas anderes .desktop) im Verzeichnis /etc/xdg/autostart/.
2. Verwenden Sie das folgende Layout in der Datei myapp.desktop.
Fügen Sie den Befehl und alle Parameter in die Zeile Exec= ein. Damit beispielsweise ein Chrome-Browser eine Webseite öffnet, würden Sie „chromium-browser [URL]“ eingeben. Wenn Ihre App sudo-Berechtigungen erfordert, können Sie sudo in den Exec-Befehl einfügen.
Um ein Skript in einem Terminalfenster auszuführen, verwenden Sie lxterminal gefolgt vom Parameter –command und doppelten Anführungszeichen mit „/bin/bash -c ‚MYCOMMANDS HERE; /bin/bash“‚. Um beispielsweise ein Python3-Skript zu starten, das sudo-Berechtigungen erfordert, würden Sie Folgendes verwenden:
Dadurch wird beim Booten ein Terminalfenster in der Fensterumgebung gestartet, in dem Ihr Skript ausgeführt wird. Sobald das Skript beendet ist (oder Sie es durch Drücken von STRG+C abbrechen), kehrt das Terminalfenster zur Eingabeaufforderung zurück. Wenn Sie möchten, dass sich das Terminalfenster nach Abschluss des Skripts selbst schließt, können Sie das ;/bin/bash am Ende weglassen.
Das Ausführen eines Skripts in einem Terminalfenster wie diesem kann hilfreich sein, denn wenn es sich um ein Python-Skript in einer Endlosschleife handelt (wie Sie es für einen Roboter hätten), können Sie das Skript einfach beenden, indem Sie STRG + C drücken. Andernfalls müssten Sie zum Beenden des Skripts den Prozess finden, den wir unten beschreiben.
Töten des Skripts
Was ist, wenn Sie Ihr automatisch ausgeführtes Skript stoppen möchten, nachdem Ihr Raspberry Pi gebootet hat? Wenn Ihr Skript bereits ausgeführt wurde, wird es aus dem Speicher gelöscht, aber wenn es darauf ausgelegt ist, kontinuierlich etwas zu tun, müssen Sie nach der Aufgabe suchen und sie beenden.
1. Suchen Sie nach Ihrem Skript, indem Sie den Befehl ps aux verwenden und den Namen Ihres Skripts (oder zumindest einen Teil des Namens) nach grep eingeben.
Ersetzen Sie app.py durch den Namen Ihres Skripts. Sie sehen eine Liste mit Prozessnummern.
2. Beenden Sie jede Prozessnummer mit dem Befehl sudo kill -9. Zum Beispiel,
Weitere Tutorials:
So erfassen Sie Screenshots auf dem Raspberry Pi
So richten Sie einen Raspberry Pi-Webserver ein
So führen Sie Raspberry Pi 4 oder 3 von einer SSD oder einem Flash-Laufwerk aus
So erstellen Sie benutzerdefinierte Tastaturkürzel auf dem Raspberry Pi
So führen Sie Emulatoren auf dem Raspberry Pi 4 aus
Über 25 Linux-Befehle, die Raspberry Pi-Benutzer kennen müssen
So erstellen Sie ein Newsticker-Shirt mit Raspberry Pi