Як чекати / 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, який я використав/lib/udev/rules.d/99-systemd.rules

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

Потім ви можете прив’язати до відеопристроїв у файлі сервісного блоку:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.