举一个udev使用例子
时间: 2024-06-03 14:09:05 浏览: 19
假设我们有一个USB设备插入到系统中,我们希望在插入时执行一个脚本来自动挂载该设备并将其添加到系统中。
首先,我们需要创建一个udev规则文件,以便在插入设备时自动触发该脚本。我们可以在/etc/udev/rules.d/目录下创建一个新的规则文件,例如我们可以创建一个名为“10-usb-mount.rules”的文件,其中包含以下内容:
ACTION=="add", KERNEL=="sd*", SUBSYSTEMS=="usb", RUN+="/path/to/mount_script.sh %k"
在这个规则文件中,“ACTION==”add””表示当设备被添加到系统中时触发该规则,“KERNEL==”sd*””表示匹配以“sd”为前缀的设备,例如“sda”、“sdb”等等,“SUBSYSTEMS==”usb””表示匹配USB子系统中的设备,最后,“RUN+=”/path/to/mount_script.sh %k””表示在匹配设备时运行一个脚本文件“mount_script.sh”,并将设备的内核名称传递给该脚本。
接下来,我们需要编写一个脚本文件“mount_script.sh”,以便在设备插入时自动挂载该设备。以下是一个示例脚本:
#!/bin/bash
DEVNAME=$1
MOUNTPOINT=/media/usb
mkdir -p $MOUNTPOINT
mount /dev/$DEVNAME $MOUNTPOINT
在这个脚本中,“$1”表示我们从udev规则中传递的内核名称,我们将其存储在变量“DEVNAME”中。然后,我们定义了一个挂载点“/media/usb”,并使用“mkdir -p”命令创建该目录(如果它不存在)。最后,我们使用“mount”命令将设备挂载到该挂载点上。
完成上述步骤后,我们只需要重新加载udev规则并重新插入设备即可自动执行脚本并挂载设备。这可以通过以下命令完成:
sudo udevadm control --reload-rules
sudo udevadm trigger
现在,每当我们插入一个USB设备时,udev将自动触发我们的脚本并自动挂载该设备。