我希望在任何时候在Linux下插入驱动器(包括USB驱动器)时自动运行我自己的命令。 显然,最简单的解决scheme是定期轮询和检查/ proc /分区或/ dev / disk的变化,但是我希望有一些比这更优雅的东西。
编辑
我知道这是可能的,因为GNOME做这件事情; 任何时候插入新驱动器,GNOME都会运行自己的“自动播放”机制来采取一些行动。 (“ 你想看这个SD卡上的图片吗? ”)
我可以想出两个用途:第一个是在我pipe理的Amazon EC2集群中自动检测和初始化新附加的EBS存储卷。
另一种用法是在基于Linux的家庭文件服务器设备上; 当我将SD卡插入设备时,应该安装卡,将卡上的图片移动到内置硬盘驱动器上,卸下卡,然后发出哔声,让我知道完成。
Udev规则是你在找什么。 从手册页本身:
…如果udev收到设备事件,它会将其configuration的规则与sysfs中提供的可用设备属性进行匹配以识别设备。 匹配的规则可以提供额外的设备信息或指定设备节点名称和多个符号链接名称,并指示udev运行其他程序作为设备事件处理的一部分。 …
强调我的。
规则文件位于/etc/udev/rules.d/中,其文档位于udev(7)中。 哦,他们几乎所有的工作。
我在这里find了一个很好的链接。 http://linlog.skepticats.com/content/udevautorun/
基本上,您可以将脚本放在/ etc / udev中,用于所有块设备或特定块。
自动运行( http://linux.die.net/man/1/autorun )照顾CD,但我不认为其他媒体存在这样的事情。 我真的不认为它/应该/,或者。
有时候你可能可以自动运行来查看dmesg,但是它很可能只适用于你的宠物系统。
你的总体目标是什么? 也许有更好的办法?