Bash

使用 USBMount 的腳本超時

  • November 28, 2016

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

它應該以這種方式避免超時。

引用自:https://unix.stackexchange.com/questions/265780