.services ファイル (systemd) を実行する前に、USB フラッシュ ドライブがマウント/存在するまで待機するにはどうすればよいですか?

.services ファイル (systemd) を実行する前に、USB フラッシュ ドライブがマウント/存在するまで待機するにはどうすればよいですか?

私はRaspberry Piでマーキーを作成しています。マーキーの画像はUSBスティックにあり、マーキーであるPythonファイルはRaspberry Pi自体にあります(Raspbianを実行しているRPi Zero W)。私はsystemdと.servicesファイルをこれと一緒に使用しようとしています。チュートリアルPi が起動したらすぐにマーキーを実行します。

しかし、ログには USB 上のファイルが見つからないと書かれているので、USB がマウントされる前にプログラムが実行されているのではないかと思います。Python プログラムを実行する前に、USB がマウントされるまで .service ファイルを待機させるにはどうすればよいですか?

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

私が待ちたいUSBは

/media/pi/0850-9F0E/

のようなものが動作すると聞いたことがありますRequiresMountsForが、どのように使用すればよいのか全くわかりません。私は Linux の技術的な面については初心者です。

答え1

私も理解するのに時間がかかりましたが、これはが答えを教えてくれました。systemctl status単位を表示するには を使用します。あなたの場合は、 のようなものになると思われますmedia-pi-0850-9F0E.mount

これをマウントした後、サービスを開始するように指示するだけです:

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

関連情報