%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81USB%20%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%81%8C%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%2F%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E5%BE%85%E6%A9%9F%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は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