Am un serviciu pe care vreau să-l rulez, numai după ce udev a setat permisiunile corecte pentru fișierele dispozitivului.
Acest lucru pare să nu meargă greșit la pornire:
Serviciul meu este pornit, cu /dev/hidraw0
permisiunile pentru fișiere nu sunt încă setate.
Serviciul meu este definit ca:
# cat /lib/systemd/system/turboledz.service
[Unitate]
Descriere=Serviciul Turbo LEDz
După=systemd-udevd.service
[Serviciu]
Tip=simplu
Utilizator=daemon
ExecStart=/usr/bin/turboledzd
KillMode=grup de control
[Instalare]
WantedBy=multi-user.target
Și îi văd dependența:
# systemctl list-dependencies turboledz
turboledz.serviciu
â ââsistem.slice
â ââsysinit.target
â ââserviciu.parament
â ââdev-hugepages.mount
â ââdev-mqueue.mount
â ââserviciu.setare.tastatură
â ââ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-module-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
â â ââ-.montură
â â ââ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
Ar fi trebuit să se acorde permisiunea, cu această regulă:
# cat /lib/udev/rules.d/70-turboledz.rules
# Faceți ca furnizorul „Arduino LLC”, produsul „Arduino Micro” accesibil pentru utilizatorii non-root.
# Notă: BUS 1 este USB.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8037", MODE="0666"
KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8037", MODE="0666"
În mod normal, această regulă stabilește corect permisiunea atunci când conectez dispozitivul.
Dar la momentul pornirii, nu pare să ruleze?
Toate regulile udev rulează în timpul pornirii?
ACTUALIZAȚI:
Văd că în cele din urmă regula se execută, ca după pornire, când mă conectez la mașină, văd permisiunile corecte.
Se pare că regula este aplicată doar cu întârziere pentru serviciul meu.
OS: Ubuntu 21.10
PROCESOR: i5-11600K
Nucleu: Linux i7 5.13.0-22-generic
Systemd: 248.3-1ubuntu8