Điểm:1

Thực hiện quy tắc udev khi khởi động

lá cờ cn

Tôi có một dịch vụ mà tôi muốn chạy, chỉ sau khi udev đã đặt quyền chính xác cho các tệp thiết bị.

Điều này dường như không đúng lúc khởi động: Dịch vụ của tôi được bắt đầu, với /dev/hidraw0 quyền truy cập tập tin chưa được thiết lập.

Dịch vụ của tôi được định nghĩa là:

# mèo /lib/systemd/system/turboledz.service 
[Đơn vị]
Mô tả=Dịch vụ Turbo LEDz
Sau=systemd-udevd.service

[Dịch vụ]
Loại = đơn giản
Người dùng = daemon
ExecStart=/usr/bin/turboledzd
KillMode=nhóm điều khiển

[Cài đặt]
WantedBy=multi-user.target

Và tôi có thể thấy sự phụ thuộc của nó:

# phụ thuộc vào danh sách 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

Sự cho phép nên được quan tâm, với quy tắc này:

# con mèo /lib/udev/rules.d/70-turboledz.rules 
# Làm cho Nhà cung cấp "Arduino LLC", Sản phẩm "Arduino Micro" có thể truy cập được đối với người dùng không phải root.
# Lưu ý: BUS 1 là USB.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8037", MODE="0666"

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

Thông thường, quy tắc này đặt đúng quyền khi tôi cắm thiết bị.

Nhưng lúc khởi động thì nó không chạy?

Tất cả các quy tắc udev có chạy trong khi khởi động không?

CẬP NHẬT:

Tôi thấy rằng cuối cùng thì quy tắc cũng được chạy, vì sau khi khởi động, khi tôi đăng nhập vào máy, tôi thấy các quyền chính xác.

Có vẻ như quy tắc chỉ được áp dụng muộn cho dịch vụ của tôi.

hệ điều hành: Ubuntu 21.10

CPU: i5-11600K

hạt nhân: Linux i7 5.13.0-22-chung

Hệ thống: 248.3-1ubuntu8

user.dz avatar
lá cờ ng
Bạn có thể kiểm tra xem `Sudo update-initramfs -u` có hữu ích không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.