UEDV规则文件
规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。所有的规则文件必须以".rules" 为后缀名。
下面是一个简单的规则:
KERNEL=="sda", NAME="my_disk", MODE="0660"
KERNEL 是匹配键,NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为sda,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_disk 的设备文件,并把设备文件的权限设为 0660。
udevadm info --query=all --name=sda 查询sda的所有信息
udevadm info --query=path --name=sda 查看sda的path
udevadm info --attribute-walk --name=/dev/nvme0n1 查看nvme0n1的所有父设备一直到sysfs的根节点
挂在U盘规则,创建.ruiles将下放代码放入
ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{
program}+="/bin/mkdir/media/%k",RUN{
program}+="/usr/bin/systemd-mount --no-block --collect $devnode/media/%k"
ACTION
:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备);
KERNEL
:内核设备名称,例如:sda,cdrom;
DEVPATH
:设备的 devpath 路径;
SUBSYSTEM
:设备的子系统名称,例如:sda 的系统为 block;
BUS
:设备在 devpath 里的总线名称,例如:usb;
DRIVER
:设备在 devpath 的设备驱动名称,例如:ide-cdrom;
ID
:设备在 devpath 里的识别号;
SYSFS{filename}
:设备的 devpath 路径下,设备的属性文件 “filename” 里的内容;
ENV{key}
:环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键;
PROGRAM
:调用外部命令;
RESULT
:外部命令 PROGRAM 的返回结果。