如何在執行 .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

相關內容