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

2
Estou fazendo um letreiro com um Raspberry Pi, onde as imagens para a marquise estão em um pendrive e o arquivo Python que é a marca de seleção está no próprio Raspberry Pi (RPi Zero W rodando Raspbian). Eu estou tentando usar systemd e um arquivo .services com este tutorial para executar o letreiro assim que o Pi inicializar.

No entanto, acho que o programa está sendo executado antes do 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 eu quero esperar é

/media/pi/0850-9F0E/

Eu ouvi algo como RequiresMountsFor funciona, mas não tenho ideia de como usá-lo. Eu sou novo no lado técnico do Linux.

    
por meabster 13.08.2017 / 01:35

1 resposta

0

Isso me levou um tempo para descobrir também, mas esse tópico me 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 começar depois que isso for montado:

After=multi-user.target media-pi-0850-9F0E.mount

    
por 20.01.2018 / 01:12