¿Cómo funciona inotify?

¿Cómo funciona inotify?

De acuerdo aWikipedia,

inotify es un subsistema del kernel de Linux que detecta cambios en el sistema de archivos. Reemplazó al anterior dnotify.

Los programas que sincronizan archivos (como crashplan, dropbox, git) recomiendan en las guías del usuario que el usuario aumente max_user_watches(1,2,3).

Por lo que tengo entendido sobre inotify, se le "dice" al sistema operativo que se ha modificado un archivo, en lugar de requerir que el sistema operativo "busque" cambios.

Supongo que hay un archivo "inotify" creado en cada directorio. ¿Es esto correcto? ¿Hay alguna manera de interactuar con inotify desde la línea de comando?

Recursos
¿Por qué los eventos de notificación son diferentes en un montaje NFS?
Inotificaresperar por una gran cantidad de archivos en un directorio

Respuesta1

Inotify es una instalación interna del kernel. No existe un "archivo de notificación". Hay llamadas al sistema dedicadas.inotify_init,inotify_add_watchyinotify_rm_watchque permiten que los procesos se registren para recibir notificaciones cuando ocurren ciertos eventos del sistema de archivos. Cuando ocurre el evento, el proceso recibe una descripción del evento a través del descriptor de archivo devuelto por inotify_init.

Al sistema operativo no se le “dice” que se ha modificado un archivo: lo sabe porque está realizando el cambio. Es la aplicación a la que se le dice que se ha modificado un archivo en lugar de tener que ir a buscarlo.

El programainotifywaitproporciona una forma sencilla de utilizar inotify desde la línea de comandos.

información relacionada