udevadm 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

udevadm — udev 管理工具

大纲

udevadm [--debug] [--version] [--help]

udevadm info [options] [devpath]

udevadm trigger [options] [devpath]

udevadm settle [options]

udevadm control option

udevadm monitor [options]

udevadm test [options] devpath

udevadm test-builtin [options] command devpath

描述

udevadm 可用于: 控制 systemd-udevd.service(8) 服务、 请求内核事件、管理事件队列、进行简单的调试。

选项

-d, --debug

在标准错误(STDERR)上显示调试信息。 udevadm testudevadm test-builtin 命令隐含了此选项。

-h, --help

显示简短的帮助信息并退出。

udevadm info [options] [devpath|file|unit...]

从udev数据库中提取设备信息。

位置参数用于指定一个或多个设备,它可以是 一个设备名(必须以 /dev/ 开头)、 一个 sys 路径(必须以 /sys/ 开头)、 一个设备单元(必须以 ".device" 结尾)。详见 systemd.device(5) 手册。

-q, --query=TYPE

提取特定类型的设备信息。 TYPE 可以是下列值之一: name, symlink, path, property, all(默认值)

-p, --path=DEVPATH

该设备在 /sys 目录下的路径(例如 [/sys]/class/block/sda)。 因为此选项是位置参数以 /sys/ 开头时的替代, 所以通常将 udevadm info --path=/class/block/sda 直接简写为 udevadm info /sys/class/block/sda

-n, --name=FILE

设备节点或软连接的名称(例如 [/dev]/sda)。 因为此选项是位置参数以 /dev/ 开头时的替代, 所以通常将 udevadm info --name=sda 直接简写为 udevadm info /dev/sda

-r, --root

以绝对路径显示 --query=name--query=symlink 的查询结果

-a, --attribute-walk

按照udev规则的格式,显示所有可用于匹配该设备的sysfs属性: 从该设备自身开始,沿着设备树向上回溯(一直到树根), 显示沿途每个设备的sysfs属性。

-x, --export

以 键='值' 的格式输出此设备的属性(注意,值两边有单引号界定)。 仅在指定了 --query=property--device-id-of-file=FILE 的情况下才有效。

-P, --export-prefix=NAME

在输出的键名前添加一个前缀。 此选项隐含了 --export

-d, --device-id-of-file=FILE

显示 FILE 文件所在底层设备的主/次设备号。 如果使用了此选项,那么将忽略所有位置参数。

-e, --export-db

导出udev数据库的全部内容

-c, --cleanup-db

清除udev数据库

-h, --help

显示简短的帮助信息并退出。

udevadm trigger [options] [devpath|file|unit]

强制内核触发设备事件,主要用于重放内核初始化过程中的冷插(coldplug)设备事件。

接受一个用于指定设备的位置参数。参见前面对 info 的描述。

-v, --verbose

显示被触发的设备列表

-n, --dry-run

并不真正触发设备事件

-t, --type=TYPE

仅触发特定类型的设备, TYPE 可以是下列值之一: devices(默认值), subsystems

-c, --action=ACTION

指定触发哪种类型的设备事件,ACTION 可以是下列值之一: add, remove, change(默认值)

-s, --subsystem-match=SUBSYSTEM

仅触发属于 SUBSYSTEM 子系统的设备事件。 可以在 SUBSYSTEM 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 OR 逻辑连接每个匹配规则, 也就是说,所有匹配的子系统中的设备都会被触发。

-S, --subsystem-nomatch=SUBSYSTEM

不触发属于 SUBSYSTEM 子系统的设备事件。 可以在 SUBSYSTEM 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 AND 逻辑连接每个匹配规则, 也就是说,只有不匹配所有指定子系统的设备才会被触发。

-a, --attr-match=ATTRIBUTE=VALUE

仅触发那些在设备的sysfs目录中存在 ATTRIBUTE 文件的设备事件。 如果同时还指定了"=VALUE",那么表示仅触发那些 ATTRIBUTE 文件的内容匹配 VALUE 的设备事件。 注意,可以在 VALUE 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 AND 逻辑连接每个匹配规则, 也就是说,只有匹配所有指定属性的设备才会被触发。

-A, --attr-nomatch=ATTRIBUTE=VALUE

不触发那些在设备的sysfs目录中存在 ATTRIBUTE 文件的设备事件。 如果同时还指定了"=VALUE",那么表示不触发那些 ATTRIBUTE 文件的内容匹配 VALUE 的设备事件。 注意,可以在 VALUE 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 AND 逻辑连接每个匹配规则, 也就是说,只有不匹配所有指定属性的设备才会被触发。

-p, --property-match=PROPERTY=VALUE

仅触发那些设备的 PROPERTY 属性值匹配 VALUE 的设备事件。注意,可以在 VALUE 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 OR 逻辑连接每个匹配规则, 也就是说,匹配任意一个属性值的设备都会被触发。

-g, --tag-match=PROPERTY

仅触发匹配 PROPERTY 标签的设备事件。如果多次使用此选项, 那么表示以 AND 逻辑连接每个匹配规则,也就是说,只有匹配所有指定标签的设备才会被触发。

-y, --sysname-match=SYSNAME

仅触发设备sys名称(也就是该设备在 /sys 路径下最末端的文件名)匹配 SYSNAME 的设备事件。 注意,可以在 SYSNAME 中使用shell风格的通配符。 如果多次使用此选项,那么表示以 OR 逻辑连接每个匹配规则, 也就是说,匹配任意一个sys名称的设备都会被触发。

--name-match=DEVPATH

触发给定设备及其所有子设备的事件。DEVPATH 是该设备在 /dev 目录下的路径。 如果多次使用此选项,那么仅以最后一个为准。

-b, --parent-match=SYSPATH

触发给定设备及其所有子设备的事件。SYSPATH 是该设备在 /sys 目录下的路径。 如果多次使用此选项,那么仅以最后一个为准。

-w, --settle

除了触发设备事件之外,还要等待这些事件完成。 注意,此选项仅等待该命令自身触发的事件完成, 而 udevadm settle 则要一直等到 所有设备事件全部完成。

--wait-daemon[=SECONDS]

在触发设备事件之前,等待 systemd-udevd 守护进程完成初始化。 默认等待 5 秒之后超时(可以使用 SECONDS 参数修改)。 此选项等价于在 udevadm trigger 命令之前先使用 udevadm control --ping 命令。

-h, --help

显示简短的帮助信息并退出。

可以直接使用 以 /sys/dev 开头的绝对路径来指定目标设备。

udevadm settle [options]

监视udev事件队列,并且在所有事件全部处理完成之后退出。

-t, --timeout=SECONDS

最多允许花多少秒等候事件队列清空。 默认值是120秒。 设为 0 表示仅检查事件队列是否为空, 并且立即返回。

-E, --exit-if-exists=FILE

如果 FILE 文件存在,则停止等待。

-h, --help

显示简短的帮助信息并退出。

udevadm control option

控制udev守护进程(systemd-udevd)的内部状态。

-e, --exit

向 systemd-udevd 发送"退出"信号并等待其退出。因为 systemd-udevd.service 中含有 Restart=always ,所以此选项实际是重启了 systemd-udevd 。 如果你想停止 systemd-udevd.service ,那么应该使用:

systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service

-l, --log-priority=value

设置 systemd-udevd.service(8) 的内部日志等级。 可以用数字或文本表示: remerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7)

-s, --stop-exec-queue

向 systemd-udevd 发送"禁止处理事件"信号, 这样所有新发生的事件都将进入等候队列。

-S, --start-exec-queue

向 systemd-udevd 发送"开始处理事件"信号,也就是开始处理事件队列中尚未处理的事件。

-R, --reload

向 systemd-udevd 发送"重新加载"信号,也就是重新加载udev规则与各种数据库(包括内核模块索引)。 注意,重新加载之后并不影响已经存在的设备, 但是新的配置将会应用于所有将来发生的新设备事件。

-p, --property=KEY=value

为所有将来发生的新设备事件统一设置一个全局的 KEY 属性,并将其值设为 value

-m, --children-max=value

设置最多允许 systemd-udevd 同时处理多少个设备事件。

--ping

向 systemd-udevd 发送一个"ping"消息并等待应答。用于检查 systemd-udevd 守护进程是否仍在正常运行。

-t, --timeout=seconds

等候 systemd-udevd 应答的最大秒数。

-h, --help

显示简短的帮助信息并退出。

udevadm monitor [options]

监视内核发出的设备事件(以"KERNEL"标记), 以及udev在处理完udev规则之后发出的事件(以"UDEV"标记),并在控制台上输出事件的设备路径(devpath)。 可用于分析udev处理设备事件所花的时间(比较"KERNEL"与"UDEV"的时间戳)。

-k, --kernel

仅显示"KERNEL"事件

-u, --udev

仅显示"UDEV"事件

-p, --property

同时还显示事件的各属性

-s, --subsystem-match=subsystem[/devtype]

根据 subsystem[/devtype] 对事件(包括 kernel uevent 与 udev event)进行过滤,仅显示与"子系统[/设备类型]"匹配的"UDEV"事件。 如果多次使用此选项,那么表示以 OR 逻辑连接每个匹配规则, 也就是说,所有指定子系统中的设备都会被监视。

-t, --tag-match=string

根据设备标签对事件(仅 udev event)进行过滤,仅显示与"标签"匹配的"UDEV"事件。 如果多次使用此选项,那么表示以 OR 逻辑连接每个匹配规则, 也就是说,拥有任一指定标签的设备都会被监视。

-h, --help

显示简短的帮助信息并退出。

udevadm test [options] [devpath]

模拟一个设备事件,并输出调试信息。

-a, --action=ACTION

指定模拟哪种类型的设备事件,ACTION 可以是下列值之一:add(默认值), remove, change

-N, --resolve-names=early|late|never

指定 udevadm 何时解析用户与组的名称: early(默认值) 表示在规则的解析阶段; late 表示在每个事件发生的时候; never 表示从不解析, 所有设备的属主与属组都是 root 。

-h, --help

显示简短的帮助信息并退出。

udevadm test-builtin [options] [command] [devpath]

针对 DEVPATH设备 运行一个内置的 COMMAND 命令, 并输出调试信息。

-h, --help

显示简短的帮助信息并退出。

参见

udev(7), systemd-udevd.service(8)