Selon Wikipedia ,
inotify est un sous-système du noyau Linux qui remarque des changements dans le système de fichiers. Il a remplacé le précédent dnotify.
Les programmes qui synchronisent des fichiers (tels que crashplan, dropbox, git) recommandent dans les guides d'utilisation que l'utilisateur augmente max_user_watches
( 1 , 2 , 3 ).
D'après ce que je comprends sur inotify, le système d'exploitation est "informé" qu'un fichier a été modifié, au lieu d'exiger que le système d'exploitation "recherche" les modifications.
Je suppose qu'il existe un fichier "inotify" créé dans chaque répertoire. Est-ce correct? Existe-t-il un moyen d'interagir avec inotify à partir de la ligne de commande?
Ressources
Pourquoi les événements inotify sont-ils différents sur un montage NFS?
Inotifywait pour un grand nombre de fichiers dans un répertoire
grep --exclude=arch -r inotify
dans les sources du noyau Linux.Réponses:
Inotify est une fonctionnalité de noyau interne. Il n'y a pas de «fichier inotify». Il y a des appels système dédiés
inotify_init
,inotify_add_watch
etinotify_rm_watch
qui permettent aux processus de s'inscrire pour être informé lorsque certains événements du système de fichiers se produisent. Lorsque l'événement se produit, le processus reçoit une description de l'événement via le descripteur de fichier renvoyé parinotify_init
.L'OS n'est pas «informé» qu'un fichier a été modifié: il le sait, car il fait le changement. C'est l'application qui se fait dire qu'un fichier a été modifié au lieu de devoir aller le chercher.
Le programme
inotifywait
fournit un moyen simple d'utiliser inotify à partir de la ligne de commande.la source