Odpowiedź Xer0FyT jest prawdopodobnie najprostszym sposobem automatycznego uruchomienia programu na PI. Ale problemy pojawiają się, gdy uruchomiony program ulega awarii z jakiegokolwiek powodu, ponieważ nie zostanie ponownie uruchomiony, ponieważ nie ma monitorowania procesu. Osobiście poleciłbym zamiast tego używać Daemontools . Jest dość prosty w konfiguracji (i jest zawarty w Raspbian). Zasadniczo tworzysz katalog usług, który zawierarun
skrypt powłoki, który uruchamia program. daemontools upewni się, że Twój program zostanie uruchomiony i zrestartowany, jeśli nastąpi awaria z jakiegokolwiek powodu.
Konfiguracja daemontools jest dość prosta. Właśnie
apt-get install daemontools daemontools-run
Następnie utwórz katalog usługi zawierający wykonywalny skrypt uruchamiania:
# 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
Obejrzyj /service/my-service/run
i edytuj, aby uruchamiał własny program zamiast uruchamiać echo
. Gdy to zrobisz, dowiązanie symboliczne do tego katalogu, /etc/service
aby daemontools automatycznie (ponownie) go uruchomił:
cd /etc/service
ln -s /service/my-service .
Po około 5 sekundach twój program powinien się uruchomić. Możesz go uruchomić / zatrzymać za pomocą
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
Możliwe jest również zalogowanie się na (na przykład) syslog. Tak więc wyjście twojego programu nie ginie. Bardziej kompletny post na ten temat napisałem tutaj: https://info-beamer.com/blog/running-info-beamer-in-production
sudo
wrc.local
sobie. Jest uruchamiany z uprawnieniami roota podczas rozruchu. Pamiętaj, aby zwrócić uwagę na część dotyczącą używania,&
chyba że twój program po prostu zrobi coś szybko, a następnie zakończy działanie.