Ответ от Xer0FyT, вероятно, является самым простым способом автоматического запуска программы на PI. Но проблемы возникают после сбоя запущенной программы по любой причине, потому что она не будет перезапущена, так как отсутствует мониторинг процесса. Я лично рекомендовал бы вместо этого использовать daemontools . Это довольно просто настроить (и входит в Raspbian). По сути, вы создаете каталог службы, который содержит run
сценарий оболочки, запускающий вашу программу. Затем daemontools позаботится о том, чтобы ваша программа запускалась и перезапускалась в случае сбоя по любой причине.
Настройка daemontools довольно проста. Только что
apt-get install daemontools daemontools-run
Затем создайте каталог службы, содержащий исполняемый скрипт запуска:
# 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
Посмотрите /service/my-service/run
и отредактируйте его, чтобы он запустил собственную программу вместо запуска echo
. Как только это будет сделано, поместите этот каталог в /etc/service
так, чтобы daemontools автоматически (пере) запустил его:
cd /etc/service
ln -s /service/my-service .
Примерно через 5 секунд ваша программа должна запуститься. Вы можете запустить / остановить его, используя
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
Также возможно войти в (например) системный журнал. Таким образом, вывод вашей программы не теряется. Я написал более полный пост в блоге об этом здесь: https://info-beamer.com/blog/running-info-beamer-in-production
sudo
поrc.local
себе. Он запускается с правами root при загрузке. Обязательно обратите внимание на часть об использовании,&
если ваша программа просто не делает что-то быстро, а затем завершает работу.