Как я могу постоянно отслеживать (маленький) файл на предмет изменений?
Например. при обновлении файла (действие из веб-приложения) выполняется сценарий (если он еще не запущен).
Сейчас я делаю это каждую минуту с помощью cron, но с задержкой до одной минуты. Я хочу принять меры сразу же после изменения файла.
Может быть, мне нужно написать какой-нибудь процесс низкого уровня, работающий в фоновом режиме, после запуска сервера?
Причина, по которой я хочу это сделать, - отделить веб-приложение от корневых действий (выполняемых по запросу, один раз при обновлении файла).
incrond (демон inotify cron) ведет себя как cron, но использует inotify в качестве механизма запуска. Это руководство есть несколько довольно исчерпывающих примеров.
Пример записи incron для описанного вами случая может быть:
/path/to/file IN_CLOSE_WRITE /path/to/your_script
incron - это программа, которую вы ищете.
Если вы используете Linux, как я предполагаю, то вы можете положиться на Linux. inotify
механизм, который уведомляет процессы пользовательского пространства при изменении файлов.
LSyncd - это одна программа, построенная на этой функции, которую вы можете настроить для выполнения произвольных команд при изменении файлов.