Acabei de instalar o Ubuntu 16.04 e recebo este aviso quando inicio o SmartGit :
IOException: User limit of inotify watches reached
Além disso, recebo o lançamento deste aviso tail -f
:
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Eu nunca recebi esse erro no Ubuntu 14.04 e os aplicativos e arquivos que estou usando no novo Ubuntu são exatamente os mesmos que eu estava usando na versão anterior.
As únicas diferenças relevantes são que eu adicionei um disco rígido adicional no PC e configurei a ferramenta de backup do Ubuntu. Esse problema pode estar relacionado a um segundo disco ou à ferramenta de backup?
Respostas:
O padrão atual no Xenial é 8192 (consulte fs / notify / inotify / inotify_user.c na fonte do kernel), você pode verificar isso imprimindo o arquivo em stdout:
Você pode aumentar o número, por exemplo, dobrando para 16384, usando:
tenha em mente que os relógios inotify consomem memória, acho que são cerca de 160 bytes por relógio em sistemas de 64 bits.
Para definir isso permanentemente, adicione uma entrada ao /etc/sysctl.conf, por exemplo:
..ou editar manualmente
/etc/sysctl.conf
(você precisa de privilégios de root para atualizá-lo) e depois executarsudo sysctl -p
fonte
As respostas acima funcionam muito bem, mas não explicam por que eu estava procurando aqui minha tentativa de obter uma resposta completa -
Por quê?
Programas que sincronizam arquivos como dropbox, git etc usam o inotify para observar alterações no sistema de arquivos. O limite pode ser visto por -
Para mim, mostra 100000 . Quando esse limite não é suficiente para monitorar todos os arquivos dentro de um diretório, gera esse erro.
Aumentando a quantidade de inotify watchers (versão curta):
Se você estiver executando o Debian, RedHat ou outra distribuição Linux semelhante , execute o seguinte em um terminal:
Se você estiver executando o ArchLinux , execute o seguinte comando (veja aqui o porquê):
Em seguida, cole-o no seu terminal e pressione Enter para executá-lo.
Detalhes técnicos:
O Listen usa inotify por padrão no Linux para monitorar diretórios quanto a alterações. Não é incomum encontrar um limite do sistema para o número de arquivos que você pode monitorar. Por exemplo, o limite de inotificação do Ubuntu Lucid (64 bits) está definido como 8192.
Você pode obter seu limite atual de observação de arquivos inotify executando:
Quando esse limite não é suficiente para monitorar todos os arquivos dentro de um diretório, o limite deve ser aumentado para que o Listen funcione corretamente.
Você pode definir um novo limite temporário com:
Se você deseja tornar seu limite permanente, use:
Você também pode precisar prestar atenção aos valores de max_queued_events e max_user_instances se o Listen continuar reclamando.
Fonte: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
fonte
Você pode verificar o limite existente e, com base nisso, pode alterá-lo conforme sua exigência
To Check : cat /proc/sys/fs/inotify/max_user_watches To Alter : sudo sysctl fs.inotify.max_user_watches=524288
Isso resolverá o erro.
fonte