Cách đợi a / dev / video0 trước khi bắt đầu dịch vụ


11

Tôi có thể viết các tệp đơn vị, phụ thuộc vào một mount, bởi vì tôi có thể liệt kê chúng và sau đó thêm vào Requires=xxx, chẳng hạn như:

# systemctl list-units | grep data
mount-data.service    loaded active exited    Manage the data partition

Những gì tôi đang cố gắng làm là bắt đầu dịch vụ khi webcam được cắm vào thiết bị. systemctl list-units | grep video0trả lại không có gì. Ai đó có thể giải thích cho tôi bằng những thuật ngữ đơn giản, tôi phải làm gì để đảm bảo điều đó? Những gì tôi muốn xảy ra là dịch vụ bắt đầu khi /dev/video0, /dev/video1, vv xuất hiện.

Tôi có một manh mối từ bài đăng này , rằng tôi sẽ cần phải viết một quy tắc udev, nhưng tôi không biết chính xác những gì cần phải được thực hiện ở đây. Cứu giúp?

Câu trả lời:


11

Tôi đã tìm ra điều này. Đầu tiên, thêm (các) dòng sau vào một trong các tệp trong thư mục quy tắc udev, tôi đã sử dụng/lib/udev/rules.d/99-systemd.rules

KERNEL=="video0", SYMLINK="video0", TAG+="systemd"
KERNEL=="video1", SYMLINK="video1", TAG+="systemd"

Sau đó, bạn có thể liên kết với (các) thiết bị video trong tệp đơn vị dịch vụ:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.