我想在 Linux 下插入驱动器(例如,包括 USB 驱动器)时自动运行我自己的命令。显然,最简单的解决方案是定期轮询并检查 /proc/partitions 或 /dev/disk 的更改,但我希望有比这更优雅的东西。
编辑
我知道这是可能的,因为 GNOME 就是这样做的;每当插入新驱动器时,GNOME 都会运行它自己的“自动播放”机制来采取一些行动。(“您想查看这张 SD 卡上的图片吗? ”)
我可以为此提出两种用途:第一种是在我管理的 Amazon EC2 集群中,用于自动检测和初始化新附加的 EBS 存储卷。
另一种用法是在基于 Linux 的家庭文件服务器设备上。当我将 SD 卡插入设备时,它应该安装卡,将卡中的图片移动到内部硬盘驱动器上,卸载卡,然后发出哔声让我知道它已完成。
Udev 规则是您正在寻找的。从手册页本身:
强调我的。
规则文件在 /etc/udev/rules.d/ 中,它们的文档在 udev(7) 中。哦,它们几乎适用于所有事情。
我在这里找到了一个很好的链接。 http://linlog.skepticats.com/content/udevautorun/
基本上,您可以将所有块设备或特定块设备的脚本放在 /etc/udev 中。
Autorun ( http://linux.die.net/man/1/autorun ) 负责 CD,但我认为其他媒体不存在类似的东西。我也真的不认为它/应该/。
您有时可以制作 autorun 来查看 dmesg,但很有可能它只适用于您的宠物系统。
你的总体目标是什么?也许有更好的方法?