Die Antwort von Xer0FyT ist wahrscheinlich die einfachste Möglichkeit, ein Programm auf dem PI automatisch zu starten. Aber Probleme treten auf, wenn das gestartete Programm aus irgendeinem Grund abstürzt, weil es nicht neu gestartet wird, da es keine Prozessüberwachung gibt. Ich persönlich würde empfehlen, stattdessen Daemontools zu verwenden. Es ist ziemlich einfach einzurichten (und in Raspbian enthalten). Grundsätzlich erstellen Sie ein Dienstverzeichnis, das ein run
Shell-Skript enthält , das Ihr Programm startet. daemontools stellt dann sicher, dass Ihr Programm gestartet und neu gestartet wird, falls es aus irgendeinem Grund abstürzt.
Das Einrichten von daemontools ist ziemlich einfach. Gerade
apt-get install daemontools daemontools-run
Erstellen Sie dann Ihr Dienstverzeichnis mit einem ausführbaren Ausführungsskript:
# create the service directory
mkdir -p /service/my-service
# create the run script
cat > /service/my-service/run <<EOF
#!/bin/sh
echo "I'm an example service executed by daemontools"
sleep 1
# Replace those 2 lines with a real call to your program like this:
# exec /my/program.py --arguments
EOF
# make it executable
chmod 755 /service/my-service/run
Schauen Sie es sich an /service/my-service/run
und bearbeiten Sie es, damit es Ihr eigenes Programm startet, anstatt es auszuführen echo
. Sobald dies erledigt ist, verknüpfen Sie dieses Verzeichnis mit symlink, /etc/service
damit es von daemontools automatisch (neu) gestartet wird:
cd /etc/service
ln -s /service/my-service .
Nach ca. 5 Sekunden sollte Ihr Programm ausgeführt werden. Sie können es mit starten / stoppen
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
Es ist auch möglich, sich (zum Beispiel) bei syslog anzumelden. Damit die Ausgabe Ihres Programms nicht verloren geht. Ich habe hier einen vollständigeren Blogeintrag darüber verfasst: https://info-beamer.com/blog/running-info-beamer-in-production
sudo
für sichrc.local
selbst verwenden. Es wird beim Booten mit Root-Rechten ausgeführt. Achten Sie unbedingt auf den Teil über die Verwendung, es&
sei denn, Ihr Programm führt etwas schnell aus und wird dann beendet.