2015-05-12 39 views
6

Czy można ustawić usługę obserwacji JAVA NIO na plikach w drzewie urządzeń /sys/class/gpio/gpioX, aby nadzorować wprowadzane zmiany?Usługa NIO watchservice dla systemów UNIX sys/classes/gpio

Przydałoby się wykryć zmiany w plikach GPIO (to znaczy wtykach GPIO) bezpośrednio z poziomu Javy, ale obawiam się, że nie jest to obsługiwane.

Potwierdzenie, że nie jest obsługiwane (i może dlaczego) byłoby wystarczające.

+0

Wszelkie szczęścia z tym? Czy potrzebujesz więcej informacji? –

Odpowiedz

4

Implementacja systemu Linux 7 NIO FileWatcher w systemie Linux wykorzystuje inotify. Inotify to podsystem jądra Linuxa, który dostrzega zmiany w systemie plików. Ma ograniczenia i nie działa w/proc,/sys i udziały sieciowe. Proszę przeczytać inotify limitations on wiki:

Inotify zgłasza niektóre, ale nie wszystkie, zdarzenia w sysfs i procfs.

powiadomień poprzez inotify wymaga jądra być świadomy wszystkich odpowiednich zdarzeń systemu plików, co nie zawsze jest możliwe dla sieciowych systemów plików, takich jak NFS gdzie zmiany dokonane przez jednego klienta nie są natychmiast transmitowane do innych klientów.

i nieco więcej:

inotify missing events
Java WatchService doesn't work on some folders
Java WatchService not generating events while watching mapped drives

+0

To całkiem interesujące. Pomyślałem, że to nie zadziała na takie rzeczy jak/proc i/sys, ale spodziewam się, że sieciowe systemy plików będą w stanie je wdrożyć, zakładając, że protokół na to zezwoli. – Trejkaz

+0

@Trejkaz to smutne, ale prawdziwe. jądro nie może kontrolować sieciowego systemu plików. FYI: poprawiłem swoją odpowiedź –