3 способа запустить программу или скрипт Raspberry Pi при запуске
Raspberry Pi – это крошечный и экономичный компьютер, который бывает разных форм и размеров и поддерживает целый ряд приложений, от чего-то простого, например, обучение программированию, до сложных проектов домашней автоматизации; сфера использования безгранична.
Одна из многих функций, которые делают Raspberry Pi таким универсальным, – это его способность запускать все виды программ, как на обычном компьютере. Фактически, не только это, вы даже можете написать свои собственные сценарии – для какой бы цели вы ни задумали – и запускать их на Pi.
Почему вы хотите запускать программу при запуске?
Хотя Raspberry Pi способен запускать всевозможные программы, вам все равно нужно вручную запускать эти программы каждый раз, когда вы хотите их запускать. Ясно, что этот подход включает в себя дополнительный шаг. И хотя это не доставляет особых неудобств, бывают случаи, когда вам понадобится программа, которая запускается сразу после загрузки Raspberry Pi.
Например, представьте, что вы используете свой Raspberry Pi для мониторинга цен на акции: при этом вы запускаете скрипт каждый день, когда ваш Pi загружается, и он извлекает информацию из заранее определенных ресурсов и представляет ее на дисплее.
Здесь, несмотря на оптимизацию процесса отслеживания цен на акции, вам все равно придется запускать скрипт каждый день. Однако благодаря автоматизации можно исключить ручной ввод из уравнения, если ваш Pi автоматически запускает скрипт при запуске.
Это для таких ситуаций, когда вы хотите запускать программу при запуске.
Как запустить программу при запуске
Есть несколько способов запустить программу при запуске на Raspberry Pi. Однако в этом руководстве вы узнаете, как использовать три из этих эффективных и простых в использовании методов.
Примечание. Мы использовали эти методы для выполнения нашего сценария Python , и вы можете сделать это с помощью любого из своих сценариев или даже встроенных программ на Raspberry Pi. Просто убедитесь, что вы используете правильный метод для выполнения своей программы.
1. Используйте файл rc.local
rc.local – это файл, управляемый системой, который запускается после запуска всех системных служб, т. е. после переключения на уровень многопользовательской работы. Это самый простой способ заставить программы запускаться при загрузке в системах Linux. Но есть предостережение: вы можете использовать этот метод только для программ без элементов GUI (графического пользовательского интерфейса), поскольку rc.local выполняется до запуска оконной системы Raspberry Pi.
Чтобы программа запускалась при загрузке, нам нужно изменить файл rc.local и добавить в него команды. Вот как это сделать.
- Откройте терминал и введите следующую команду, чтобы открыть файл rc.local: sudo nano /etc/rc.local .
- В файле rc.local введите следующую строку кода перед строкой «exit 0»: python3 /home/pi/PiCounter/display.py & .
- Здесь замените PiCounter / display.py именем своей программы / скрипта. Также убедитесь, что вы используете абсолютный путь к вашей программе, а не ее относительный путь. Обратите внимание, что команда заканчивается символом амперсанда (&).
- Это информирует систему о том, что программа, которую мы планируем, работает непрерывно, поэтому ей не следует ждать завершения вашего скрипта перед запуском последовательности загрузки. Обратите внимание, что отсутствие амперсанда в команде приведет к тому, что скрипт будет работать вечно, и ваш Pi никогда не загрузится.
- После этого нажмите CTRL + O, чтобы сохранить файл. В терминале введите sudo reboot .
Как только ваш Pi загрузится, он должен запустить вашу программу автоматически. Если по какой-то причине вы хотите остановить запуск программы при загрузке, снова отредактируйте файл rc.local, чтобы удалить только что добавленную строку.
2. Используйте Cron для планирования программы.
Cron – это утилита для настройки и планирования заданий в Unix-подобных системах. Он позволяет вам планировать программы, которые вы хотите запускать через фиксированные интервалы или периодически.
Функциональность Cron зависит от демона crond, который является фоновой службой, запускающей программы, запланированные в crontab. Все программы, запланированные в системе, находятся в таблице заданий cron (или crontab).
Поэтому вам нужно изменить эту таблицу, чтобы добавить расписание для программы, которую вы хотите запускать при запуске. Вот как:
- Откройте интерфейс командной строки на Raspberry Pi и введите crontab -e, чтобы отредактировать таблицу заданий cron (crontab). Если вы открываете crontab впервые, вам нужно выбрать редактор. Вы можете выбрать предпочитаемый редактор или продолжить работу с Nano. В любом случае введите имя редактора и нажмите Enter .
- Чтобы сделать запись в таблице cron, введите команду: @reboot python3 /home/pi/PiCounter/display.py & . В своей команде убедитесь, что вы заменили имя программы и путь к ней.
- Нажмите CTRL + O, чтобы записать строку в crontab.
- Введите sudo reboot в терминал, чтобы перезагрузить Pi.
Теперь Cron должен запускать вашу программу при каждой загрузке Pi. Если вы хотите остановить это расписание, удалите команду в crontab.
3. Запускайте программы графического интерфейса пользователя при запуске с помощью автозапуска.
Автозапуск – лучший способ запускать программы Raspberry Pi с графическим интерфейсом при запуске. Он работает, обеспечивая доступность и системы X Window, и среды рабочего стола LXDE до того, как система запустит любую из запланированных программ.
Если у вас есть сценарий, который работает в оконном режиме, или вы хотите запускать любую из программ / приложений на основе графического интерфейса пользователя при запуске на Raspberry Pi, вам следует запланировать их запуск с помощью автозапуска. Вот как это сделать.
- Сначала откройте терминал и введите следующую команду, чтобы создать файл .desktop в каталоге автозапуска: sudo nano /etc/xdg/autostart/display.desktop . Мы использовали display.desktop в качестве имени файла, но вы можете назвать файл рабочего стола как угодно.
- В файл .desktop добавьте следующие строки кода:
[Desktop Entry]
Name=PiCounter
Exec=/usr/bin/python3 /home/pi/PiCounter/display.py - В этом файле замените значение поля « Имя» на имя вашего проекта / сценария. Точно так же мы добавили нашу программу display.py, которая запускается каждый раз при загрузке Raspberry Pi.
- Однако вы можете заменить его любой программой, которую хотите запустить. Фактически, вы даже можете запланировать запуск сторонней программы, например браузера Chrome; в этом случае файл .desktop должен включать следующий код:
[Desktop Entry]
Name=Chrome
Exec=chromium-browser - После этого нажмите CTRL + O, чтобы сохранить файл, а затем введите sudo reboot, чтобы перезапустить Pi.
Как только ваш Pi загрузится, ваша программа с графическим интерфейсом также должна запуститься автоматически. Если вы хотите, чтобы ваша программа больше не запускалась при запуске, просто перейдите в папку автозапуска и удалите только что созданный файл .desktop.
Успешный запуск программы при запуске на Raspberry Pi
Хотя есть много способов запустить программу при запуске в системах на базе Linux, методы, которые мы упомянули в этом руководстве, должны помочь вам в планировании программ на Raspberry Pi.
Поэтому независимо от того, какую программу вы хотите запустить – пользовательский сценарий или стороннее приложение – эти методы должны вас охватить. И вы должны иметь возможность уменьшить дополнительный шаг, необходимый для выполнения программы каждый раз, когда вы хотите ее запустить.