Como esperar que uma unidade flash USB seja montada/presente antes de executar o arquivo .services (systemd)?

Como esperar que uma unidade flash USB seja montada/presente antes de executar o arquivo .services (systemd)?

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 RequiresMountsForfunciona, 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 statuspara 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

informação relacionada