วิธีรอ a / dev / video0 ก่อนเริ่มบริการ


11

ฉันสามารถเขียนไฟล์หน่วยซึ่งขึ้นอยู่กับการติดตั้งเพราะฉันสามารถแสดงรายการพวกเขาแล้วเพิ่มไปRequires=xxxเช่น:

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

สิ่งที่ฉันพยายามทำคือการทำให้บริการเริ่มต้นเมื่อเว็บแคมเสียบเข้ากับอุปกรณ์ systemctl list-units | grep video0ไม่มีอะไรคืน ใครสามารถอธิบายฉันด้วยคำง่ายๆฉันจะทำอย่างไรเพื่อให้แน่ใจว่า สิ่งที่ฉันไม่ต้องการให้เกิดขึ้นคือการบริการเริ่มต้นเมื่อ/dev/video0, /dev/video1ฯลฯ ปรากฏ

ฉันได้รับเบาะแสจากโพสต์นี้ว่าฉันจะต้องเขียนกฎ udev แต่ฉันไม่รู้ว่าจะต้องทำอะไรที่นี่ ช่วยด้วย?

คำตอบ:


11

ฉันคิดออก ก่อนอื่นเพิ่มบรรทัดต่อไปนี้ในไฟล์ในโฟลเดอร์ udev rule ที่ฉันใช้/lib/udev/rules.d/99-systemd.rules

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

จากนั้นคุณสามารถผูกเข้ากับอุปกรณ์วิดีโอในไฟล์ Service unit:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.