Estou fazendo uma marquise com um Raspberry Pi onde as imagens da marquise estão em um pendrive e o arquivo Python que é a marquise está no próprio Raspberry Pi (RPi Zero W rodando Raspbian). Estou tentando usar o systemd e um arquivo .services com issotutorialpara executar o letreiro assim que o Pi inicializar.
No entanto, acho que o programa está sendo executado antes de o USB ser montado ou algo assim, porque os logs dizem que os arquivos no USB não podem ser encontrados. Como faço para que o arquivo .service espere até que o USB seja montado antes de executar o programa python?
Aqui está o programa 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
O USB que quero esperar é
/media/pi/0850-9F0E/
Já ouvi algo parecido com RequiresMountsFor
funciona, mas não tenho ideia de como usá-lo. Sou novo no lado técnico do Linux.
Responder1
Isso também me levou um tempo para descobrir, mas issofiome deu a resposta. Use systemctl status
para mostrar a unidade. No seu caso, provavelmente será algo como media-pi-0850-9F0E.mount
.
Basta dizer ao seu serviço para iniciar depois que isso for montado:
After=multi-user.target media-pi-0850-9F0E.mount