Как выполнить скрипт при запуске на Raspberry Pi — wikiHow — wiki-how.ru
02.05.2024

Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

Независимо от того, используется ли он в качестве медиацентра, веб-сервера, игровой консоли или просто компьютера, существует множество причин, по которым вам может понадобиться определенная программа или сценарий для автоматического запуска при загрузке Raspberry Pi. Из этой статьи вы узнаете, как заставить скрипт запускаться во время загрузки, либо добавив его в качестве службы (до загрузки рабочего стола), либо добавив его в файл автозапуска (после загрузки рабочего стола).

Добавление скрипта как службы

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    1. Создайте файл .service для своего скрипта.Этот метод научит вас создавать службу, которая запускает ваш скрипт во время загрузки до запуска LXDE. Если сценарию требуются зависимости, которые не активны немедленно (например, сеть или что-либо графическое), служба сообщит вашему сценарию подождать, пока эти процессы не загрузятся. Создайте файл (названный scriptname.service) со следующей структурой, заменив пути и описание по мере необходимости:

    [Unit]

    Description=My Service

    After=network-online.target

    [Service]

    ExecStart=/usr/bin/python3 -u main.py

    WorkingDirectory=/home/pi/myscript

    StandardOutput=inherit

    StandardError=inherit

    Restart=always

    User=pi

    [Install]

    WantedBy=multi-user.target

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    2. Скопируйте службу в /etc/system/system. Вам нужно будет сделать это от имени пользователя root, поэтому используйте sudo. Вот пример:

      sudo cp myscript.service /etc/systemd/system/myscript.service

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    3. Протестируйте службу, запустив ее.Перед настройкой автоматического запуска службы убедитесь, что сценарий работает правильно при выполнении. Чтобы запустить скрипт через службу, вы будете использовать команду systemctl следующим образом:

      sudo systemctl start myscript.service При необходимости вы можете остановить службу, выполнив ту же команду, заменив start на stop.

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    4. Настройте запуск службы во время загрузки.Пока сценарий выполняется без ошибок, вы можете запустить команду, которая гарантирует запуск сценария во время загрузки:

      sudo systemctl enable myscript.service

Использование файла автозапуска

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    1. Понять требования и то, как они работает.Для этого метода требуется среда рабочего стола PIXEL с последней версией операционной системы Raspbian. Это достигается путем редактирования файла «автозапуск», который запускает команды при запуске в среде рабочего стола LXDE, которая является основой, на которой построен рабочий стол PIXEL Raspberry Pi. Этот метод предпочтителен в случаях, когда:

      Для запуска сценария требуется среда рабочего стола. Сценарий должен запускаться из окна терминала. Вы хотите указать, для каких пользователей сценарий будет запускаться автоматически.

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    2. Откройте файл автозапуска в текстовом редакторе nano. В новом терминале выполните следующую команду:

      sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    3. Используйте клавиши со стрелками, чтобы перейти к концу второй строки, и нажмите ↵ Enter. Будет создана новая строка над записью @xscreensaver -no-splash. Многие пользователи сообщают, что команды, добавленные ниже этой строки, не выполняются успешно, поэтому обычной практикой является добавление пользовательских команд над записью @xscreensaver.

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    4. Добавьте команду для запуска скрипта.Здесь у вас больше всего возможностей, так как вы можете ввести любую команду терминала, которую обычно используете для запуска скрипта. Например, чтобы запустить сценарий bash с именем «myscript.sh», который находится в домашнем каталоге пользователя «pi», нужно ввести команду: /home/pi/myscript.sh. Точно так же, если для запуска скрипта требуются права суперпользователя, вы можете даже предварить команду sudo. 5. Включите полные пути к каждому имени файла. Например, для запуска скрипта Python, требующего прав суперпользователя, который называется «myscript.py», который находится в домашнем каталоге пользователя. «pi», вы должны ввести полный путь как к самому скрипту Python, так и к интерпретатору Python, например sudo /usr/bin/python /home/pi/myscript.py.

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    6. Решите, хотите ли вы запускать скрипт в новом окне терминала при запуске. Для этого вы можете использовать команду @lxterminal с модификатором -e, за которым следует полный путь к вашему скрипту в кавычках. Например:

      @lxterminal -e «/home/pi/myscript.sh»

      Это запустит скрипт из нового окна терминала.

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    7. Введите соответствующие команды для запуска скрипта. После ввода нажмите Ctrl +X, а затем следуйте инструкциям на экране, чтобы сохранить изменения.

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

    Как выполнить скрипт при запуске на Raspberry Pi — wikiHow

    8. Перезагрузите для проверки. Используйте sudo reboot для перезагрузки Raspberry Pi. Если скрипт работает как задумано, он запустится при запуске оконного менеджера.