Autostart Raspberry Pi?
Ich möchte auf einem Raspberry Pi 1 B+ eine Pythondatei automatisch mit dem Systemstart starten. Wie kann ich das anstellen.
LG
2 Antworten
Crontab oder systemd wäre hier das was du nutzen kannst.
CrontabEinfach in der CLI zum aufrufen der Crontab Datei
crontab -e
Eintragen und mit [Enter] bestätigen.
Er wird dich nun fragen welchen Editor du wählen willst, tue dir selbst einen Gefallen und nutze nano (VI ist für bspw hass)
Nun öffnet sich die crontab Datei, dort sollte auch schon was drinnen stehen. Dies ignorieren wir und tragen in der letzten Zeile
@reboot Befehl zum starten
Ein und betätigen erneut [Enter], denn die Datei muss mit einer Leerzeile abschließen.
Nun [Strg] + [O] zum speichern
[Strg] + [X] zum beenden.
Nun erfolgt eine Meldung das der Crontab erfolgreich installiert wurde.
SystemdDafür brauchen wir
- Skript
- Service
Dafür erstellst du ein Skript
sudo nano /path/to/script.sh
Mit folgendem Inhalt
#!/bin/bash
Das was das Skript halt machen soll, oder eben der Befehl
Das Skript muss nun ausführenbar gemacht werden
sudo chmod -x /path/to/script.sh
Ausprobieren ob dein Skript macht was es soll kannst du mit
sh /path/to/script.sh
ServiceDanach brauchen wir noch den Service der dieses Skript ausführt
sudo nano /lib/systemd/system/Name.service
Diese Datei muss folgenden inhalt haben
[Unit]
Description=was macht der Service
[Service]
ExecStart=/path/to/script.sh
Type=simple
[Install]
WantedBy=multi-user.target
Das Ganze denn speichern und
sudo chmod 644 /lib/systemd/system/Name.service
Danach
sudo systemctl enable Name.service
sudo systemctl start Name.service
Ob der Service Job läuft siehat du hier
sudo systemctl status Name.service
Wie du dir denken kannst habe ich natürlich ein paar Platzhalter verwendet
/path/to/script.sh >>> das wäre dort wo du deine Skripte speichern willst und halt auch den Namen dafür verwenden
Name.service >>> hier ist Name der Platzhalter und kann von dir relativ frei gewählt werden (sofern der Name noch frei ist)
Das das Ganze über das Terminal einzugeben ist, erklärt sich hoffentlich selbst.
Danke, viele Anleitungen sind leider echt für Idioten (so wie ich einer bin) oftmals nichts zu gebrauchen und ich finde man sollte immer davon ausgehen das jemand wirklich null Ahnung hat (so wie zu meiner Zeit damals 😁)
Stimmt der delay der ist wiederum echt sinnvoll (weil ich den früher vergessen habe, habe ich mir systemd angeschaut)
Vor Anmeldung als service (systemd) oder per crontab mit @reboot
Wenn erst nach Anmeldung kommt es auf das frontend an
Ok, danke für fie Antwort schonmal. Wie genau trage ich das jetzt ein?
Kleine Anmerkung, bei @reboot im crontab hilft im Fehlerfall manchmal ein delay, zB sleep 60, vor der eigentlichen Ausführung. Wenn das nicht reicht geh ich direkt auf systemd.
Schöne Anleitung im Übrigen!