Назад | Перейти на главную страницу

как заставить pyinotify запускать программу при любой модификации файла?

Я должен следить за любым вводом или любыми изменениями, внесенными в текущий контент в файл, при любой модификации мне нужно запустить программу python, которая находится в той же папке.

Я изо всех сил старался понять, но не могу добиться хорошего результата. Было бы очень полезно, если бы кто-нибудь мог помочь мне в этом.

Вы можете сделать одно из двух.

  • Вы можете написать программу, которая напрямую подключается к inotify API и реагирует на события изменения. Это, вероятно, самый элегантный вариант, но он выходит за рамки ServerFault.
  • Ты можешь использовать inotifywait (часть inotify-tools), чтобы отслеживать файл и запускать скрипт всякий раз, когда что-то происходит.

Для inotifywait вам нужно настроить сценарий оболочки (скорее всего, в init.d), чтобы делать что-то в этом роде:

#!/bin/sh
while inotifywait -e modify /path/to/file
do
   /path/to/reaction_script.py
done

НЕ используйте -m переключитесь, когда вы вызываете inotifywait в таком условном выражении; Он не будет работать.