Перейти к содержимому

Как запустить скрипт при загрузке на Raspberry Pi

    1652400602

    Существует множество причин, по которым вы захотите запускать скрипт Python, приложение или скрипт другого типа (например, скрипт Bash) каждый раз при загрузке Raspberry Pi. Возможно, у вас есть робот или IoT-устройство, которое должно быть готово к выполнению задачи, как только Raspberry Pi запустит его. Или, может быть, вы просто хотите, чтобы определенная программа всегда работала в фоновом режиме, и не хотите запускать ее вручную при каждом сеансе.

    Существует несколько способов автоматического запуска скрипта при загрузке Raspberry Pi, но самый простой — использовать crontab, функцию планирования, которая также позволяет настроить запуск скриптов в определенное время.

    Как запустить скрипт на Raspberry Pi Boot

    1. Отредактируйте список crontab, набрав:

    Вы можете запустить crontab, не вводя sudo, но если вы это сделаете, вы не сможете запускать сценарии, требующие прав администратора. На самом деле, если вы не используете sudo, вы получите другой список crontab, поэтому не забывайте продолжать использовать его или не использовать.

    2. Выберите nano, если вам будет предложено запросить редактор.

    Откроется файл.

    3. Добавьте в конец файла строку следующего содержания:

    Строка должна начинаться с @reboot, что говорит ей запускаться каждый раз, когда вы загружаете Raspberry Pi. Если это скрипт Python, вам нужно поместить команду для запуска интерпретатора python или python3, за которой следует полный путь к вашему скрипту Python. 

    Если это скрипт Bash или другое приложение, просто укажите полный путь к нему.

    4. Сохраните и выйдите. В nano вы делаете это, нажимая CTRL + X, отвечая Y и нажимая Enter при появлении запроса.

    5. Сделайте ваш скрипт исполняемым, если это скрипт Bash. Сценарии Python не обязательно должны быть исполняемыми, потому что интерпретатор Python уже есть. Вы можете сделать любой скрипт исполняемым, набрав 

    Если вы хотите удалить свой скрипт из crontab, просто снова введите sudo crontab -e и удалите или закомментируйте эту строку. Обратите внимание, что если вы создаете проект, который не требует использования оконной среды, вы можете сэкономить системные ресурсы, настроив Raspberry Pi для загрузки из командной строки, введя sudo raspi-config, а затем перейдя к параметрам загрузки — > Desktop/CLI и выбрав Автоматический вход в консоль.

    Как автоматически запустить скрипт или приложение в графическом интерфейсе Raspberry Pi

    Если вы хотите, чтобы ваш скрипт или приложение запускались при запуске Raspberry Pi в оконном графическом интерфейсе, выполните следующие действия.

    1. Создайте файл с именем myapp.desktop (или что-то еще .desktop) в каталоге /etc/xdg/autostart/.

    2. Используйте следующий макет в файле myapp.desktop. 

    Поместите команду и любые параметры в строку Exec=. Например, чтобы браузер Chrome открывал веб-страницу, вы должны указать «chromium-browser [URL]». Если вашему приложению требуются разрешения sudo, вы можете поместить sudo в команду Exec. 

    Чтобы запустить скрипт в окне терминала, используйте lxterminal, за которым следует параметр —command и двойные кавычки с «/bin/bash -c ‘МОИ КОМАНДЫ ЗДЕСЬ; /bin/bash». Например, чтобы запустить скрипт python3, требующий разрешений sudo, вы должны использовать: 

    Это запустит окно терминала в оконной среде при загрузке с вашим скриптом, запущенным в нем. Как только сценарий завершится (или вы прервете его, нажав CTRL+C), окно терминала вернется к подсказке. Если вы хотите, чтобы окно терминала само закрывалось после завершения скрипта, вы можете пропустить ;/bin/bash в конце.

    Запуск скрипта в окне терминала, подобного этому, может быть полезен, потому что, если это скрипт Python в бесконечном цикле (например, для робота), вы можете легко завершить скрипт, нажав CTRL+C. В противном случае, чтобы убить скрипт, вам нужно будет найти процесс, который мы опишем ниже.

    Убить сценарий

    Что делать, если вы хотите остановить автозапуск скрипта после загрузки Raspberry Pi? Если ваш скрипт уже завершил работу, он исчезнет из памяти, но если он предназначен для выполнения чего-то непрерывно, вам нужно будет найти и убить задачу.

    1. Найдите свой сценарий с помощью команды ps aux и поместите имя вашего сценария (или хотя бы частичное имя) после grep.

    Замените app.py на имя вашего скрипта. Вы увидите список номеров процессов.

    2. Уничтожить каждый номер процесса с помощью команды sudo kill -9. Например,

    Дополнительные уроки:

    Как делать скриншоты на Raspberry Pi
    Как настроить веб-сервер Raspberry Pi
    Как запустить Raspberry Pi 4 или 3 с SSD или флешки
    Как создать собственные сочетания клавиш на Raspberry Pi
    Как запустить эмуляторы на Raspberry Pi 4
    25+ команд Linux, которые нужно знать пользователям Raspberry Pi
    Как сделать рубашку с бегущей строкой новостей с помощью Raspberry Pi

    0 0 голоса
    Rating post
    Подписаться
    Уведомить о
    guest
    0 comments
    Межтекстовые Отзывы
    Посмотреть все комментарии
    0
    Оставьте комментарий! Напишите, что думаете по поводу статьи.x