Как запустить программу при загрузке Raspberry Pi
Руководство: Как запустить программу при загрузке
Возможность автоматического запуска программы при включении Raspberry Pi может быть очень полезной. Существует несколько способов запуска команды при старте системы, но в этом руководстве мы создадим скрипт в каталоге etc/init.d, чтобы при загрузке системы программа автоматически запускалась, а при выключении — автоматически останавливалась.
Для целей данного руководства мы покажем метод для произвольной программы, созданной на Python — example.py — с расположением /home/pi/example.py. Приведенный ниже код будет работать для любого скрипта, просто замените example на имя вашей программы, а /home/pi/example.py — на фактический путь к вашему скрипту.
Создание скрипта init.d
Сначала нам нужно создать скрипт в каталоге /etc/init.d/. Введите следующую команду в терминале, но замените example на имя вашей собственной программы:
sudo nano /etc/init.d/example
Откроется текстовый редактор. Вставьте следующий код и замените имя и расположение программы на свои. Части, которые нужно изменить, выделены жирным:
#! /bin/sh
#/etc/init.d/example
### BEGIN INIT INFO
# Provides: example
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start a program from boot
# Description: A simple script which will start a program from boot and stop upon shut-down
### END INIT INFO
# Put any commands you always want to run here.
case "$1" in
start)
echo "Starting example"
# run the program you want to start
/home/pi/example.py
;;
stop)
echo "Stopping example"
# end the program you want to stop
killall example.py
;;
*)
echo "Usage: /etc/init.d/example {start|stop}"
exit 1
;;
esac
Настройка и регистрация скрипта
После того как вы скопировали приведенный выше код и заменили имена на свои, выйдите из редактора и сохраните файл с помощью Ctrl+X.
Далее нужно сделать программу исполняемой:
sudo chmod +x /etc/init.d/example
Проверьте, что программа работает корректно из etc/init.d/example, выполнив тестовый запуск:
sudo /etc/init.d/example start
И аналогично выполните тестовую остановку программы:
sudo /etc/init.d/example stop
Далее нам нужно зарегистрировать программу в системе, чтобы она знала, что нужно запускать/останавливать программу при загрузке/выключении.
sudo update-rc.d example default
Вот и все! Теперь вы можете перезагрузить ваш Raspberry Pi, и программа „example“ должна запуститься автоматически.
Удаление программы из автозагрузки
Если вы когда-нибудь захотите убрать программу из автозагрузки, введите следующую команду:
sudo update-rc.d -f example remove