Рейтинг:1

Выполнение правила udev во время загрузки

флаг cn

У меня есть служба, которую я хочу запустить только после того, как udev установит правильные разрешения для файлов устройств.

Это кажется неправильным во время загрузки: Мой сервис запущен, с /dev/hidraw0 права доступа к файлам еще не установлены.

Моя служба определяется как:

# кошка /lib/systemd/system/turboledz.service 
[Ед. изм]
Описание=Сервис Turbo LEDz
После = systemd-udevd.service

[Оказание услуг]
Тип=простой
Пользователь=демон
ExecStart=/usr/bin/turboledzd
KillMode=контрольная группа

[Установить]
WantedBy=многопользовательская.цель

И я вижу его зависимость:

# список-зависимостей systemctl turboledz
turboledz.service
â ââsystem.slice
â ââsysinit.target
✓ ✓ apparmor.service
✓ ✓ dev-hugepages.mount
â ââdev-mqueue.mount
â ââkeyboard-setup.service
â ââkmod-static-nodes.service
â ââplymouth-read-write.service
â ââplymouth-start.service
â ââproc-sys-fs-binfmt_misc.automount
â ââsetvtrgb.service
â ââsys-fs-fuse-connections.mount
â ââsys-kernel-config.mount
â ââsys-kernel-debug.mount
â ââsys-kernel-tracing.mount
â ââsystemd-ask-password-console.path
✓ ✓ systemd-binfmt.service
â ââsystemd-boot-system-token.service
✓ ✓ systemd-hwdb-update.service
â ââsystemd-journal-flush.service
â ââsystemd-journald.service
â ââsystemd-machine-id-commit.service
â ââsystemd-modules-load.service
✓ ✓ systemd-pstore.service
â ââsystemd-random-seed.service
â ââsystemd-sysctl.service
â ââsystemd-sysusers.service
â ââsystemd-timesyncd.service
â ââsystemd-tmpfiles-setup-dev.service
â ââsystemd-tmpfiles-setup.service
â ââsystemd-udev-trigger.service
â ââsystemd-udevd.service
â ââsystemd-update-utmp.service
â ââcryptsetup.target
â ââlocal-fs.target
â â ââ-.mount
â â ââboot-efi.mount
â â ââmnt-farm0.mount
â â ââmnt-farm1.mount
â â ââmnt-farm2.mount
â â ââmnt-farm3.mount
â â ââmnt-farm4.mount
â â ââmnt-farm5.mount
✓ ✓ ✓ ✓ systemd-fsck-root.service
â â ââsystemd-remount-fs.service
✓ ✓ swap.target
â â ââswapfile.swap
▪ ▪ veritysetup.target

О разрешении нужно было позаботиться с помощью этого правила:

# кошка /lib/udev/rules.d/70-turboledz.rules 
# Сделать поставщика «Arduino LLC», продукт «Arduino Micro» доступным для пользователей без полномочий root.
# Примечание: BUS 1 — это USB.

ПОДСИСТЕМЫ=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8037", MODE="0666"

KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8037", MODE="0666"

Обычно это правило правильно устанавливает разрешение, когда я подключаю устройство.

А при загрузке вроде не запускается?

Все ли правила udev запускаются во время загрузки?

ОБНОВИТЬ:

Я вижу, что в конечном итоге правило запускается, так как после загрузки, когда я вхожу в систему, я вижу правильные разрешения.

Похоже, что правило просто применяется к опаздывать на мою службу.

ОПЕРАЦИОННЫЕ СИСТЕМЫ: Убунту 21.10

ЦПУ: i5-11600K

Ядро: Linux i7 5.13.0-22-общий

Система: 248.3-1убунту8

user.dz avatar
флаг ng
Не могли бы вы проверить, помогает ли `sudo update-initramfs -u`?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.