Jak czekać na / dev / video0 przed uruchomieniem usługi

11

Potrafię pisać pliki jednostek, które zależą od montowania, ponieważ mogę je wyświetlić, a następnie dodać Requires=xxx, na przykład:

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

Usiłuję uruchomić usługę po podłączeniu kamery internetowej do urządzenia. systemctl list-units | grep video0nic nie zwraca. Czy ktoś może mi wyjaśnić w prosty sposób, co mam zrobić, aby to zapewnić? Co chcę się zdarzyć podczas startu jest usługa /dev/video0, /dev/video1itp pojawiać.

Dostałem wskazówkę z tego postu , że będę musiał napisać regułę udev, ale nie mam pojęcia, co dokładnie należy tutaj zrobić. Wsparcie?

galety
źródło

Odpowiedzi:

11

Zrozumiałem to. Najpierw dodaj następujące linie do jednego z plików w folderze reguł udev, którego używałem/lib/udev/rules.d/99-systemd.rules

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

Następnie możesz połączyć się z urządzeniami wideo w pliku jednostki serwisowej:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
galety
źródło