当硬件插入时执行脚本

当硬件插入时执行脚本

当我连接特定硬件时,如何告诉我的 Ubuntu 安装在执行一些脚本?

例如:我有一个外部 eSATA 磁盘。当插入此磁盘(且仅插入此磁盘)时,我的笔记本应执行 backup.sh 脚本。

此外,如果我能了解这些自动执行情况就好了。最漂亮的是 gnome 面板上的指示器。但是弹出一个显示脚本输出的终端也不错。

答案1

可以告诉 udev 在设备插入时执行某些操作。这里http://blog.deadlypenguin.com/blog/2009/09/25/automatic-backups-with-udev/ 你看别人是如何用 USB 磁盘做的,用 e-sata 磁盘做应该非常相似。

答案2

您必须让脚本作为用户守护进程运行,通过 D-Bus 监听 hal 事件。

答案3

您可以在 udev 规则中使用 RUN 来完成至少部分操作。例如,请参阅此操作指南:https://help.ubuntu.com/community/UsbDriveDoSomethingHowto

这不包括通知或输出——您可以让脚本将其结果放入文件中,并让帐户中运行的其他程序监视该文件。(有许多现有程序可用于在 GUI 中监视文件——例如,有一个 gkrellm 插件。)

建议让后台进程监听 dbus 事件,这是另一种可行的方法,并且在某些方面更为优雅(最重要的是您不需要处理系统范围的配置)。但它也需要更多一点的 Linux 管道级知识和编程工作。

相关内容