Bash
使用 USBMount 的腳本超時
我在 raspbian 系統上使用 Usbmount ( https://github.com/rbrito/usbmount ) 來自動檢測 USB 棒在設備中的插入和移除,然後從 /etc/usbmount/ 執行腳本mount.d/ 文件夾相應地。
腳本執行良好,但問題是腳本在使用 Usbmount 執行時在複製操作中間停止。如果從命令行執行,它們就可以正常工作。
這似乎是一個 udevd 超時問題。系統日誌說:
usbmount[835]: executing command: run-parts /etc/usbmount/mount.d systemd-udevd[802]: timeout: killing '/usr/share/usbmount/usbmount add' [835] systemd-udevd[802]: '/usr/share/usbmount/usbmount add' [835] terminated by signal 9 (Killed)
我的 usbmount.conf 設置為預設值。USB記憶棒是FAT32。
解決此問題的最佳方法是什麼?
我使用 at 命令解決了這個問題。at 工具可以安排任務在給定時間執行,在我們的例子中,我們將使用“現在”時間立即執行它。
如果您沒有安裝 at 命令,則必須安裝它:
sudo apt-get install at
然後創建一個文本文件,其中包含您想要執行的命令列表而不會超時,並用新行分隔,並將其命名為您想要的任何名稱,讓我們說“命令”。然後將此行添加到您的 usbmount 腳本中:
at -f command now
它應該以這種方式避免超時。