Cómo esperar a / dev / video0 antes de comenzar un servicio


11

Puedo escribir archivos de unidad, que dependen de un montaje, porque puedo enumerarlos y luego agregarlos Requires=xxx, como:

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

Lo que intento hacer es iniciar el servicio cuando la cámara web está conectada al dispositivo. systemctl list-units | grep video0no devuelve nada ¿Alguien puede explicarme en términos simples, qué debo hacer para garantizar eso? Lo que quiero que suceda es puesta en servicio cuando /dev/video0, /dev/video1etc aparecer.

Recibí una pista de esta publicación , que necesitaré escribir una regla de udev, pero no tengo idea de qué se debe hacer exactamente aquí. ¿Ayuda?

Respuestas:


11

Me di cuenta de esto. Primero, agregue las siguientes líneas a uno de los archivos en la carpeta de reglas de udev, utilicé/lib/udev/rules.d/99-systemd.rules

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

Luego puede enlazar a los dispositivos de video en el archivo de la unidad de servicio:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.