Come attendere un / dev / video0 prima di avviare un servizio


11

Posso scrivere file di unità, che dipendono da un mount, perché posso elencarli e aggiungerli a Requires=xxx, come:

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

Quello che sto cercando di fare è avviare il servizio quando la webcam è collegata al dispositivo. systemctl list-units | grep video0non restituisce nulla. Qualcuno può spiegarmi in termini semplici, cosa devo fare per garantire questo? Quello che voglio che accada è il servizio inizio quando /dev/video0, /dev/video1ecc apparire.

Ho capito da questo post che dovrò scrivere una regola udev, ma non ho idea di cosa debba essere fatto esattamente qui. Aiuto?

Risposte:


11

L'ho capito. Per prima cosa, aggiungi le seguenti righe a uno dei file nella cartella delle regole udev, che ho usato/lib/udev/rules.d/99-systemd.rules

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

Quindi è possibile associare i dispositivi video nel file dell'unità di servizio:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.