Wie wartet man, bis ein USB-Flash-Laufwerk gemountet/vorhanden ist, bevor man die .services-Datei (systemd) ausführt?

Wie wartet man, bis ein USB-Flash-Laufwerk gemountet/vorhanden ist, bevor man die .services-Datei (systemd) ausführt?

Ich erstelle eine Laufschrift mit einem Raspberry Pi, wobei sich die Bilder für die Laufschrift auf einem USB-Stick befinden und die Python-Datei, die die Laufschrift darstellt, auf dem Raspberry Pi selbst (RPi Zero W mit Raspbian). Ich versuche, systemd und eine .services-Datei damit zu verwendenLernprogrammum das Laufwort auszuführen, sobald der Pi hochfährt.

Ich glaube jedoch, dass das Programm ausgeführt wird, bevor der USB-Stick gemountet wird oder so, da in den Protokollen steht, dass die Dateien auf dem USB-Stick nicht gefunden werden können. Wie kann ich dafür sorgen, dass die Servicedatei wartet, bis der USB-Stick gemountet ist, bevor sie das Python-Programm ausführt?

Hier ist das myscript.service-Programm:

[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

Der USB, auf den ich warten möchte, ist

/media/pi/0850-9F0E/

Ich habe gehört, dass so etwas RequiresMountsForfunktioniert, aber ich habe keine Ahnung, wie ich es verwenden soll. Ich bin neu auf dem technischen Gebiet von Linux.

Antwort1

Auch das hat eine Weile gedauert, bis ich es herausgefunden habe, aber dasFadengab mir die Antwort. Verwenden Sie , systemctl statusum die Einheit anzuzeigen. In Ihrem Fall wird es wahrscheinlich so etwas sein wie media-pi-0850-9F0E.mount.

Sagen Sie Ihrem Dienst einfach, dass er starten soll, nachdem dies gemountet wurde:

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

verwandte Informationen