Подписка на файл в /sys

#linux #sys

#linux #sys

Вопрос:

Inotify не запускается при изменениях файла в /sys — какие существуют способы подписаться на изменения там?

Ответ №1:

События, которые изменяют /sys, обычно обрабатываются udev. Итак, вы можете добавить правила udevd для обработки событий или использовать libudev для доступа к системным файлам и мониторинга за ними. Я только что нашел здесь несколько руководств:http://www.signal11.us/oss/udev /

Ответ №2:

Используйте udev и правила udev, чтобы получать уведомления об изменениях (подключение оборудования к сети, загрузка драйверов, загрузка прошивки и т.д.), Которые отражены в /sys.

Смотрите http://hackaday.com/2009/09/18/how-to-write-udev-rules / для получения подробной информации

Ответ №3:

Чтобы получать уведомления об изменениях в файле или каталоге / sys, я использую объекты опроса из python.

 import select

poll_objet = select.poll()
fd_object = file("/sys/what_you_want_to_survey", "r")
poll_objet.register(fd_object) # I use the select.POLLPRI | select.POLLERR combination in my code ;)
result = poll_object.poll()
  

где результатом является список (fd, событие), к которым были применены прикосновения.

Комментарии:

1. Почему вы назвали свой объект опроса «poll_objet» без «c»?

2. Я использовал оболочку Python и ввел код вручную. В качестве файла я использовал «/home/ikem /operstate». Я использовал обычную оболочку Bash, чтобы изменить значение на echo "0">operstate и echo "1">operstate . В оболочке Python я напечатал значение «результат». Я написал цикл while, чтобы обновлять и печатать результат при каждом запуске, и каждый раз получал одну и ту же пару значений «[3][5]». Чего я здесь не понимаю?