NIO watchservice для файлов UNIX sys/classes/gpio
Можно ли установить JAVA NIO WatchService для файлов в /sys/class/gpio/gpioX
дерево устройств для контроля изменений там?
Было бы неплохо обнаружить изменения в файлах GPIO (то есть входах GPIO) непосредственно из Java, но я боюсь, что это не поддерживается.
Подтверждение того, что оно не поддерживается (и, возможно, почему), будет достаточно.
1 ответ
Реализация linux Java 7 NIO FileWatcher использует inotify. Inotify - это подсистема ядра Linux, которая замечает изменения файловой системы. Он имеет ограничения и не работает с /proc, /sys и сетевыми ресурсами. Пожалуйста, прочтите ограничения inotify на вики:
Inotify сообщает о некоторых, но не обо всех событиях в sysfs и procfs.
Уведомление через inotify требует, чтобы ядро знало обо всех соответствующих событиях файловой системы, что не всегда возможно для сетевых файловых систем, таких как NFS, где изменения, сделанные одним клиентом, не сразу передаются другим клиентам.
и немного больше:
сообщать о пропущенных событиях
Java WatchService не работает на некоторых папках
Java WatchService не генерирует события во время просмотра подключенных дисков