我正在使用 USBmount (https://github.com/rbrito/usbmount)在 raspbian 系统上自动检测 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 设置为默认值。 U 盘是 FAT32。
解决这个问题的最佳方法是什么?
答案1
我使用 at 命令解决了该问题。 at 工具可以安排任务在给定时间运行,在我们的例子中,我们将使用“现在”时间立即运行它。
如果您没有安装 at 命令,则必须安装它:
sudo apt-get install at
然后创建一个文本文件,其中包含要在不超时的情况下运行的命令列表,并用换行符分隔,并将其命名为您想要的任何名称,例如“命令”。然后将此行添加到您的 usbmount 脚本中:
at -f command now
这样应该可以避免超时。