запустить скрипт Python на Raspberry Pi включен - PullRequest
0 голосов
/ 01 января 2019

Я работаю над Raspberry Pi 3 около 3 месяцев, у меня была проблема, когда я начал работать с ним.Я не смог найти эффективный и безопасный способ запуска скрипта Python на Rasberry, когда он включается (без монитора, мыши и клавиатуры). В тот момент я добавил «$ sudo run myscript.py &» в / etc / profileно иногда, когда я включаю его, мой скрипт не запускается до тех пор, пока я не подключу к нему монитор, мышь и клавиатуру и не выполню скрипт с графическим интерфейсом, а после этого он будет работать нормально (снова без мыши и клавиатуры).

IХотите знать, есть ли какое-нибудь решение, которое я буду уверен, что мой скрипт будет работать после того, как я включу Raspberry Pi?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 01 января 2019

/etc/profile выполняется при запуске нового сеанса оболочки, поэтому, если вы не запустите хотя бы один сеанс оболочки, ваш скрипт не будет запущен.Более того, он будет прерван, когда сессия прекратится, и если вы запустите несколько сеансов, сценарий также будет запущен для каждого сеанса, что, вероятно, не то, что вы хотите.

В зависимости от вашей системы инициализации вам нужно будет создатьSysVinit или системный сервис.Предполагая, что вы используете системный дистрибутив (который в настоящее время используется по умолчанию для большинства дистрибутивов Linux), вам нужно сделать следующее:

Шаг 1: Поместить ваш скрипт в место, из которого он будет выполняться службой,Например, /usr/local/bin/ может быть хорошим выбором.

Шаг 2: Создать служебный файл.Предполагая, что вы хотите назвать его myscript.service, создайте файл по следующему пути /etc/systemd/system/myscript.service со следующим содержимым:

[Unit]
Description=myscript

[Service]
ExecStart="/usr/bin/python /usr/local/bin/myscript.py"

[Install]
WantedBy=multi-user.target

Шаг 3: Перезагрузите демон systemd и включите вашу службу:

systemctl daemon-reload
systemctl enable myscript

Теперь после перезапуска вашей системы ваш сервис должен автоматически запуститься.Вы можете проверить это с помощью команды systemctl status myscript, которая возвращает статус сервиса.

0 голосов
/ 01 января 2019

Вы захотите настроить service и пользователя sudo service <my_service> [start, stop, restart], чтобы заставить его работать при запуске.См. здесь для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...