如何在运行 .services 文件(systemd)之前等待 USB 闪存驱动器安装/存在?

如何在运行 .services 文件(systemd)之前等待 USB 闪存驱动器安装/存在?

我正在用 Raspberry Pi 制作一个选框,其中选框的图像位于 USB 记忆棒上,而作为选框的 Python 文件位于 Raspberry Pi 本身上(运行 Raspbian 的 RPi Zero W)。我尝试使用 systemd 和 .services 文件教程在 Pi 启动后立即运行选框。

但是,我认为程序在 USB 挂载之前正在运行,或者其他原因,因为日志显示无法找到 USB 上的文件。如何让 .service 文件等到 USB 挂载后再运行 python 程序?

这是 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

相关内容