70 votes

Erreur d'écoute : impossible de surveiller les changements dans les répertoires

J'obtiens l'erreur suivante en exécutant mon application rails sur un serveur Ubuntu

FATAL : Erreur d'écoute : impossible de surveiller les changements dans les répertoires. Visitez https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers pour obtenir des informations sur la façon de résoudre ce problème.

J'ai suivi la page GitHub ci-dessus, mais je n'ai pas pu écrire dans max_user_watches qui était fixé à 8192 et je veux le fixer à 524288. dans cat /proc/sys/fs/inotify/max_user_watches J'ai essayé d'accorder des droits d'écriture, mais je recevais une erreur de permission refusée même avec un accès Root.

Merci d'avance ! !!

1 votes

Cela peut parfois se produire si trop de processus tentent d'accéder au même dossier que votre projet rails. Par exemple. J'accédais au dossier du projet rails sur 2 IDEs Sublime, VS Code avait aussi quelques processus travaillant sur le même dossier. Ainsi, en démarrant le serveur, j'ai été confronté à la même erreur. Si vous ne voulez pas augmenter la limite des surveillants, désactivez simplement tout processus accédant à ce dossier. Cela devrait fonctionner.

125voto

Mayur Shah Points 1890

1000 est beaucoup trop petit, essayez avec 524288 comme expliqué dans la page wiki : https://github.com/guard/listen/blob/master/README.md#increasing-the-amount-of-inotify-watchers

Listen utilise inotify par défaut sous Linux pour surveiller les répertoires pour les changements. Il n'est pas rare de rencontrer une limite de système sur le nombre de fichiers que vous pouvez surveiller. Par exemple, Ubuntu Lucid (64bit) inotify d'Ubuntu Lucid est fixé à 8192.

y

Si vous utilisez Debian, RedHat, ou un autre Linux similaire similaire, exécutez ce qui suit dans un terminal :

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Si vous utilisez ArchLinux, exécutez la commande suivante à la place

echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system

1 votes

Cependant, j'ai pu le faire fonctionner sur arch avec sudo sysctl fs.inotify.max_user_watches=524288

0 votes

Pour information - le lien vers la page github ci-dessus est maintenant rompu.

29voto

Essayez simplement d'exécuter ceci depuis votre console

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

J'espère que cela vous conviendra.

Références : cliquez ici

0 votes

Merci, cela fonctionne, merci.

0 votes

Bienvenue @Adnan.

6voto

Ian Link Points 152

Pour les autres qui pourraient avoir ce problème. J'ai eu une déconnexion de VM qui a laissé le serveur rails précédent en fonctionnement. L'exécution de la commande ci-dessous a résolu le problème sans avoir besoin d'augmenter le nombre de watcher.

 kill -9 $(lsof -i tcp:3000 -t)

6voto

Quy Le Points 84

Dans mon cas, il me suffit d'éteindre le terminal et de le rallumer. Cela fonctionne lorsque j'essaie d'exécuter rails c commande :)

2 votes

La méthode classique du "reboot and retry".

0voto

jamesw Points 4235

Cette erreur s'est produite car j'avais un certain nombre de processus ruby en cours d'exécution dont je n'étais pas conscient. Il suffit de les terminer et tout va bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X