Bagaimana cara menunggu / dev / video0 sebelum memulai layanan

11

Saya dapat menulis file unit, yang bergantung pada mount, karena saya dapat membuat daftar dan kemudian menambahkannya Requires=xxx, seperti:

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

Apa yang saya coba lakukan adalah memulai layanan ketika webcam dicolokkan ke perangkat. systemctl list-units | grep video0tidak mengembalikan apa pun. Dapatkah seseorang menjelaskan kepada saya secara sederhana, apa yang harus saya lakukan untuk memastikan hal itu? Apa yang saya inginkan terjadi adalah awal layanan ketika /dev/video0, /dev/video1, dll muncul.

Saya mendapat petunjuk dari posting ini , bahwa saya perlu menulis aturan udev, tetapi saya tidak tahu apa yang sebenarnya perlu dilakukan di sini. Tolong?

galet
sumber

Jawaban:

11

Saya menemukan ini. Pertama, tambahkan baris berikut ke salah satu file di folder aturan udev, yang saya gunakan/lib/udev/rules.d/99-systemd.rules

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

Kemudian Anda dapat mengikat perangkat video dalam file unit layanan:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
galet
sumber