¿Cómo esperar a que se monte/presente una unidad flash USB antes de ejecutar el archivo .services (systemd)?

¿Cómo esperar a que se monte/presente una unidad flash USB antes de ejecutar el archivo .services (systemd)?

Estoy haciendo una marquesina con una Raspberry Pi donde las imágenes de la marquesina están en una memoria USB y el archivo Python que es la marquesina está en la propia Raspberry Pi (RPi Zero W con Raspbian). Estoy intentando usar systemd y un archivo .services con estotutorialpara ejecutar la marquesina tan pronto como se inicie el Pi.

Sin embargo, creo que el programa se está ejecutando antes de que se monte el USB o algo así porque los registros dicen que no se pueden encontrar los archivos en el USB. ¿Cómo hago para que el archivo .service espere hasta que se monte el USB antes de ejecutar el programa Python?

Aquí está el 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

El USB que quiero esperar es

/media/pi/0850-9F0E/

He oído algo así como RequiresMountsForfunciona pero no tengo idea de cómo usarlo. Soy nuevo en el aspecto técnico de Linux.

Respuesta1

Esto también me llevó un tiempo darme cuenta, pero estohilome dio la respuesta. Úselo systemctl statuspara mostrar la unidad. En tu caso, probablemente será algo como media-pi-0850-9F0E.mount.

Simplemente dígale a su servicio que comience después de que esto esté montado:

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

información relacionada