ฉันมีบริการที่ต้องการเรียกใช้ หลังจากที่ udev ได้ตั้งค่าการอนุญาตที่ถูกต้องในไฟล์อุปกรณ์แล้วเท่านั้น
สิ่งนี้ดูเหมือนจะผิดพลาดในเวลาบูต:
บริการของฉันเริ่มต้นขึ้นด้วย /dev/hidraw0
ยังไม่ได้ตั้งค่าสิทธิ์ของไฟล์
บริการของฉันถูกกำหนดให้เป็น:
# cat /lib/systemd/system/turboledz.service
[หน่วย]
คำอธิบาย=บริการ Turbo LEDz
หลังจาก = systemd-udevd.service
[บริการ]
ประเภท = ง่าย
ผู้ใช้=ภูต
ExecStart=/usr/bin/turboledzd
KillMode=กลุ่มควบคุม
[ติดตั้ง]
WantedBy=multi-user.target
และฉันเห็นการพึ่งพาของมัน:
# 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.บริการ
â ââsys-fs-fuse-connections.เมานต์
â ââ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-journal.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
â â ââ-.เมาท์
â â ââ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
การอนุญาตควรได้รับการดูแลโดยมีกฎนี้:
# cat /lib/udev/rules.d/70-turboledz.rules
# ทำให้ผู้ขาย "Arduino LLC", ผลิตภัณฑ์ "Arduino Micro" สามารถเข้าถึงได้สำหรับผู้ใช้ที่ไม่ใช่รูท
# หมายเหตุ: BUS 1 คือ USB
SUBSYSTEMS=="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-1ubuntu8