Независимо от того, используется ли он в качестве медиацентра, веб-сервера, игровой консоли или просто компьютера, существует множество причин, по которым вам может понадобиться определенная программа или сценарий для автоматического запуска при загрузке Raspberry Pi. Из этой статьи вы узнаете, как заставить скрипт запускаться во время загрузки, либо добавив его в качестве службы (до загрузки рабочего стола), либо добавив его в файл автозапуска (после загрузки рабочего стола).
Шаги
Добавление скрипта как службы
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
2. Скопируйте службу в /etc/system/system. Вам нужно будет сделать это от имени пользователя root, поэтому используйте sudo. Вот пример:
- sudo cp myscript.service /etc/systemd/system/myscript.service
3. Протестируйте службу, запустив ее.Перед настройкой автоматического запуска службы убедитесь, что сценарий работает правильно при выполнении. Чтобы запустить скрипт через службу, вы будете использовать команду systemctl следующим образом:
- sudo systemctl start myscript.service При необходимости вы можете остановить службу, выполнив ту же команду, заменив start на stop.
4. Настройте запуск службы во время загрузки.б>Пока сценарий выполняется без ошибок, вы можете запустить команду, которая гарантирует запуск сценария во время загрузки:
- sudo systemctl enable myscript.service
Использование файла автозапуска
1. Понять требования и то, как они работает.Для этого метода требуется среда рабочего стола PIXEL с последней версией операционной системы Raspbian. Это достигается путем редактирования файла «автозапуск», который запускает команды при запуске в среде рабочего стола LXDE, которая является основой, на которой построен рабочий стол PIXEL Raspberry Pi. Этот метод предпочтителен в случаях, когда:
- Для запуска сценария требуется среда рабочего стола. Сценарий должен запускаться из окна терминала. Вы хотите указать, для каких пользователей сценарий будет запускаться автоматически.
2. Откройте файл автозапуска в текстовом редакторе nano. В новом терминале выполните следующую команду:
- sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
3. Используйте клавиши со стрелками, чтобы перейти к концу второй строки, и нажмите ↵ Enter. Будет создана новая строка над записью @xscreensaver -no-splash. Многие пользователи сообщают, что команды, добавленные ниже этой строки, не выполняются успешно, поэтому обычной практикой является добавление пользовательских команд над записью @xscreensaver.
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.
6. Решите, хотите ли вы запускать скрипт в новом окне терминала при запуске. Для этого вы можете использовать команду @lxterminal с модификатором -e, за которым следует полный путь к вашему скрипту в кавычках. Например:
@lxterminal -e «/home/pi/myscript.sh»
Это запустит скрипт из нового окна терминала.
7. Введите соответствующие команды для запуска скрипта. После ввода нажмите Ctrl +X, а затем следуйте инструкциям на экране, чтобы сохранить изменения.
- Если вы больше не хотите, чтобы ваш скрипт запускался при запуске, просто отредактируйте файл автозапуска еще раз, только на этот раз удалите ранее добавленные строки. После сохранения и выхода ваш скрипт больше не будет запускаться автоматически при запуске.
8. Перезагрузите для проверки. Используйте sudo reboot для перезагрузки Raspberry Pi. Если скрипт работает как задумано, он запустится при запуске оконного менеджера.