Udev
Перевод man udev
Имя
udev - служба динамического управления устройствами
Описание
udev передаёт программам системы информацию о событиях устройств, управляет правами доступа файловой системы /dev (далее нодам устройств), умеет создавать дополнительные ноды и символические ссылки на внутри файловой системы /dev и переименовывать сетевые интерфейсы.
Ядро обычно просто назначает имена устройств в зависимости от порядка их обнаружения.
Узнаваемые символические ссылки и имена сетевых устройств позволяют надёжно идентифицировать устройства на основе их свойств и конфигурации компьютера.
Служба udev (смотри systemd-udevd.service(8) ), получает события (uevents) от устройств непосредственно от ядра всякий раз, когда устройство добавляется, удаляется из системы, или меняет своё состояние.
Вся информация об устройствах, которую обрабатывает udev, хранится в базе данных udev и рассылается возможным подписчикам событий. Доступ ко всем хранимым данным и источникам событий обеспечивает библиотека libudev.
Файлы правил (rules)
Правила udev (файлы с расширением rules) считываются из файлов, расположенных каталоге в системных правил /lib/udev/rules.d (из пакетов дистрибутива) и /usr/local/lib/udev/rules.d (из самосборных пакетов) , из временного каталога создаваемого во время работы операционной системы /run/udev/rules.d из каталога для администратора системы/etc/udev/rules.d
Все файлы правил коллективно сортируются и обрабатываются в лексическом порядке, независимо от каталогов, в которых они находятся.
- Однако файлы с одинаковыми именами заменяют друг друга.
- Файлы в /etc/ имеют наивысший приоритет, файлы в /run/ имеют приоритет над файлами с тем же именем в /lib и /usr/local/lib (разница
приоритетов между /lib и /usr/local/lib не определена, далее по тексту, просто /lib). Это можно использовать для переопределения системного файла правил из /lib и /usr/local/lib с помощью нового файла, если это необходимо;
- Символическая ссылка в /etc/ с тем же именем, что и файл правил в /lib/, указывающая на /dev/null, полностью отключает файл правил.
- Файлы правил должны иметь расширение .rules; другие расширения игнорируются.
- Каждая строка в файле правил содержит по крайней мере одну пару ключ-значение.
- Пустые строки , и строки, начинающиеся с # (комментарии) игнорируются.
- Существуют два типа ключей - сравнения (сопоставления) и назначения.
- Если все ключи сравнения совпадают с их значением, то применяется соответствующие правило, а ключами назначения переменным присваиваются указанные значения.
- Правило сопоставления может переименовывать сетевой интерфейс, добавлять символические ссылки, указывающие на узел устройства, или запускать указанную программу как часть обработки события.
- Правило присвоения состоит из одного или нескольких выражений, разделённых запятыми, вида ключ-оператор-значение.
- Каждое выражение имеет свой эффект, зависящий от используемого ключа и оператора.
Операторы:
<sourc lang=text>
"==" Сравните на равенство. (Истина, если ключ имеет данное значение).
"!=" Сравните на предмет неравенства. (Истина, если ключ не равен значению, или указанного ключа вообще не существует).
"=" Присвойте значение ключу. Ключ, представляющий список, сбрасываются, и ему назначается только это единственное значение.
"+=" Добавьте значение к ключу, содержащему список записей.
"-=" Удаляет значение из ключа, содержащего список записей.
":=" Присвоить ключу финальное значение, запретить любые последующие изменения ключа.