генерация событий в Unix / c / Python - PullRequest
1 голос
/ 04 декабря 2011

Я хочу написать Программу на C / Python - Unix (Open SUSE) для следующего: -

1) Механизм отчетов / аварийных сообщений: wherin, если в определенной папке было выполнено некоторое обновление,или что-то еще изменилось на уровне ОС, тогда это вызовет тревогу, или сигнал должен быть отправлен в уже выполняющуюся программу, а затем поступит соответствующим образом.

Я прочитал signal (), похоже, решение моей проблемы,но как я могу использовать этот определяемый пользователем сигнал для решения моей задачи.Пожалуйста помоги.Некоторые ресурсы были бы хороши.

Или, если какой-либо другой метод доступен, пожалуйста, дайте мне знать.

Спасибо

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Используйте libev, его легко встроить в ваше приложение, используя C или Python. http://software.schmorp.de/pkg/libev.html

и это ссылка ,, http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod

0 голосов
/ 06 декабря 2011

Похоже, правильный инструмент для вашей работы Pyinotify -

Страница обзора проекта находится здесь: https://github.com/seb-m/pyinotify/wiki

URL-адрес кода находится здесь, но его можно установить с помощью easy_install или pip Python: https://github.com/seb-m/pyinotify

Он предназначен только для этого: вызывать функцию в вашем рабочем коде всякий раз, когда какой-либо отслеживаемый каталог или файл изменяется в системе linux.

== редактировать ==

извините, я пропустил часть "что-то еще изменилось на уровне ОС" - но, возможно, это только для широкого ответа. Однако единственной технологией, разработанной в Linux для уведомления порограмм событий системного уровня (например, подключение / отключение периферийных устройств и файловой системы, изменения состояния процессора и т. Д.), Является DBUS.

DBUS можно использовать как на C, так и на Python - я не использовал его, но унаследовал от идеи DCOP эпохи KDE 3 - раньше DCOP был вполне применим. Вы можете увидеть примеры и инструкции по использованию DBUS здесь:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...