Como esperar por um / dev / video0 antes de iniciar um serviço

8

Eu posso escrever arquivos de unidade, que dependem de uma montagem, porque eu posso listá-los e adicioná-los a Requires=xxx , como:

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

O que estou tentando fazer é iniciar o serviço quando a webcam estiver conectada ao dispositivo. systemctl list-units | grep video0 não retorna nada. Alguém pode me explicar em termos simples, o que eu faço para garantir isso? O que eu quero que aconteça é iniciar o serviço quando /dev/video0 , /dev/video1 , etc aparecer.

Eu tenho uma pista de este post , que precisarei escrever um regra do udev, mas não tenho ideia do que exatamente precisa ser feito aqui. Ajuda?

    
por galets 26.02.2015 / 00:56

1 resposta

8

Eu percebi isso. Primeiro, adicione as seguintes linhas a um dos arquivos na pasta de regras do udev, usei /lib/udev/rules.d/99-systemd.rules

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

Você pode vincular-se ao (s) dispositivo (s) de vídeo no arquivo da unidade de serviço:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
    
por 26.02.2015 / 01:36

Tags