Pourquoi ai-je le Waiting...Fatal error: watch ENOSPC
lorsque j'exécute la tâche de surveillance? Comment résoudre ce problème?
Après quelques recherches, nous avons trouvé la solution. Exécutez la commande ci-dessous.
echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
Pour Arch Linux, ajoutez cette ligne à /etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
Chaque fois que vous devez exécuter Sudo something ...
pour réparer quelque chose, vous devriez vous arrêter pour réfléchir à ce qui se passe. Bien que la réponse acceptée ici soit parfaitement valable, il s’agit de traiter le symptôme plutôt que le problème. L’équivalent de l’achat de sacoches plus grandes pour résoudre le problème de: erreur, impossible de charger plus de déchets sur poney. Pony a tellement de déchets déjà chargés que ce poney s'évanouit d'épuisement.
Une alternative (peut-être comparable à enlever les déchets de poney en excès et à la jeter dans la décharge), consiste à exécuter:
npm dedupe
Ensuite, allez vous féliciter d'avoir rendu poney heureux.
Après avoir essayé réponse de la grenade , vous pouvez utiliser un correctif temporaire:
Sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
Cela fait la même chose que la réponse de kds , mais sans persister les modifications. Ceci est utile si l'erreur se produit juste après une période de disponibilité de votre système.
Pour savoir qui crée des instances inotify , essayez cette commande ( source ):
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
Le mien ressemblait à ceci:
25 /proc/2857/fd/anon_inode:inotify
9 /proc/2880/fd/anon_inode:inotify
4 /proc/1375/fd/anon_inode:inotify
3 /proc/1851/fd/anon_inode:inotify
2 /proc/2611/fd/anon_inode:inotify
2 /proc/2414/fd/anon_inode:inotify
1 /proc/2992/fd/anon_inode:inotify
En utilisant ps -p 2857
, j'ai pu identifier le processus 2857 en tant que sublime_text
. Ce n’est qu’après avoir fermé toutes fenêtres sublimes que j’ai pu exécuter mon script de noeud.
J'ai rencontré cette erreur après la panne de mon ordinateur client. La commande jest --watch
que je m'exécutais sur le serveur persistait et j'ai essayé d'exécuter à nouveau jest --watch
.
L'ajout à /etc/sysctl.conf
décrit dans les réponses ci-dessus a permis de résoudre ce problème, mais il était également important de retrouver mon ancien processus via ps aux | grep node
et kill
.
Sous Linux, vous corrigez cela avec la commande:
echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
Dans mon cas, il était lié à vs-code s'exécutant sur ma machine Linux. J'ai ignoré un avertissement qui est apparu à propos de File Watcher, bla bla. La solution se trouve sur la page de documentation vs-code de linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file- changements-dans-ce-grand-espace-de-travail-erreur-enospc
La solution est presque la même (sinon identique) que les réponses acceptées, mais elle a plus d'explications pour ceux qui arriveront après avoir rencontré les problèmes de vs-code.