Segundo a Wikipedia ,
O inotify é um subsistema de kernel do Linux que percebe alterações no sistema de arquivos. Ele substituiu o dnotify anterior.
Os programas que sincronizam arquivos (como crashplan, dropbox, git) recomendam nos guias do usuário que o usuário aumente max_user_watches
( 1 , 2 , 3 ).
Pelo que entendi sobre o inotify, o sistema operacional é "informado" de que um arquivo foi alterado, em vez de exigir que o sistema operacional "vá procurar" por alterações.
Presumo que exista um arquivo "inotify" criado em todos os diretórios. Isso está correto? Existe uma maneira de interagir com o inotify na linha de comando?
Recursos
Por que os eventos inotify são diferentes em uma montagem NFS?
Inotifywait para grande número de arquivos em um diretório
grep --exclude=arch -r inotify
nas fontes do kernel do Linux.Respostas:
Inotify é um recurso interno do kernel. Não há "arquivo inotify". Há chamadas sistema dedicado
inotify_init
,inotify_add_watch
einotify_rm_watch
que permitem processos de registrar-se para ser notificado quando certos eventos do sistema de arquivos acontecer. Quando o evento acontece, o processo recebe uma descrição do evento através do descritor de arquivo retornado porinotify_init
.O sistema operacional não é "informado" de que um arquivo foi alterado: ele sabe, porque está fazendo a alteração. É o aplicativo que informa que um arquivo foi alterado em vez de precisar procurar.
O programa
inotifywait
fornece uma maneira simples de usar o inotify na linha de comando.fonte