Puncte:1

Efectuarea unei reguli udev la pornire

drapel cn

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

user.dz avatar
drapel ng
Ai putea testa dacă `sudo update-initramfs -u` ajută?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.