Как дождаться / 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.