Я делаю marquee с помощью Raspberry Pi, где изображения для marquee находятся на USB-накопителе, а файл Python, который является marquee, находится на самом Raspberry Pi (RPi Zero W, работающий на Raspbian). Я пытаюсь использовать systemd и файл .services с этимруководствозапустить шатер сразу после загрузки Pi.
Однако я думаю, что программа запускается до того, как USB смонтирован или что-то в этом роде, потому что в журналах говорится, что файлы на USB не могут быть найдены. Как мне заставить файл .service ждать, пока USB не будет смонтирован, прежде чем он запустит программу python?
Вот программа myscript.service:
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/Documents/base.py > /home/pi/Documents/myscript.log 2>&1
[Install]
WantedBy=multi-user.target
USB, который я хочу дождаться, это
/media/pi/0850-9F0E/
Я слышал, что что-то вроде этого RequiresMountsFor
работает, но понятия не имею, как это использовать. Я новичок в технической стороне Linux.
решение1
Мне тоже потребовалось некоторое время, чтобы это понять, но этонитьдал мне ответ. Используйте systemctl status
для отображения единицы измерения. В вашем случае это будет, вероятно, что-то вроде media-pi-0850-9F0E.mount
.
Просто укажите вашей службе запуститься после монтирования:
After=multi-user.target media-pi-0850-9F0E.mount