我正在用 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