Grunt watch error - Waiting ... Errore fatale: watch ENOSPC


Risposte:


1359

Dopo aver fatto qualche ricerca, ho trovato la soluzione. Esegui il comando seguente.

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

Per Arch Linux aggiungi questa riga a /etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

45
Bene, sembra aver risolto il mio problema ... Ma come? Perché? Hai qualche fonte che spieghi cosa sta succedendo (o stava accadendo). O potresti farlo tu? Comunque, grazie ...
slacktracer

116
Il sistema ha un limite al numero di file che possono essere guardati da un utente. Puoi esaurire gli orologi abbastanza rapidamente se Grunt è in esecuzione con altri programmi come Dropbox. Questo comando aumenta la quantità massima di orologi che un utente può avere.
Benjamin Manns,

62
Per Arch Linux aggiungere fs.inotify.max_user_watches=524288ai /etc/sysctl.d/99-sysctl.confe quindi eseguire sysctl --system. Ciò persisterà anche durante i riavvii. Per maggiori dettagli: wiki.archlinux.org/index.php/Sysctl
tnajdek

38
npm dedupechiarito per me. problema
reergymerej

25
spiegazione: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf scrive alla fine del file /etc/sysctl.conf la riga "fs.inotify.max_user_watches = 524288" sudo sysctl -p riconfigura il kernel in fase di esecuzione, caricando il file /etc/sysctl.conf come parametro
kds

186

Ogni volta che devi correre sudo something ...per riparare qualcosa, dovresti fare una pausa per pensare a cosa sta succedendo. Mentre la risposta accettata qui è perfettamente valida, tratta il sintomo piuttosto che il problema. Sorta l'equivalente dell'acquisto di bisacce più grandi per risolvere il problema di: errore, non è possibile caricare più immondizia sul pony. Pony ha già tanta spazzatura già caricata, che il pony sta svenendo per la stanchezza.

Un'alternativa (forse paragonabile a rimuovere la spazzatura in eccesso dal pony e metterla nella discarica), è quella di eseguire:

npm dedupe

Quindi congratulati con te stesso per aver reso felice Pony.


42
Grazie per aver reso felice il pony.
Christian,

2
Cosa fa esattamente? Ha risolto il mio problema di sicuro. Grazie @grenade
Arjun KR,

4
Il comando 'npm dedupe' percorre l'albero del modulo npm e sposta ogni pacchetto nell'albero il più possibile. Il risultato è un albero piatto. Sposta un pacchetto anche quando non è duplicato. Puoi leggere di più su cosa succede alle diverse versioni dei moduli in questo caso, su docs.npmjs.com/cli/dedupe
Arun Reddy,

1
non ha aiutato, ho provato con sudoe ora funziona per me.
Asedsami,

6
Nel mio caso il mio problema sembra essere l'installazione di Dropbox che sembra utilizzare molti orologi. Quindi ho dovuto usare: fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pcome nella risposta accettata, ma +1 per insegnarminpm dedupe
Johann Echavarria,

36

Dopo aver provato la risposta di granata puoi usare una soluzione temporanea:

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

Questo fa la stessa cosa della risposta di kds , ma senza persistere nelle modifiche. Ciò è utile se l'errore si verifica solo dopo un periodo di attività del sistema.


3
Questa dovrebbe essere la risposta accettata poiché il problema è naturalmente causato da ciò che è in esecuzione al momento e non da una configurazione errata (vedere l'esempio "pony").
Arielmz,

7

Per scoprire chi sta creando istanze inotify , prova questo comando ( fonte ):

for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr

Il mio sembrava così:

 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

Utilizzando ps -p 2857, sono stato in grado di identificare il processo 2857 come sublime_text. Solo dopo aver chiuso tutte le finestre sublimi sono stato in grado di eseguire il mio script del nodo.


lo stesso con me per vscode ma penso che sia correlato anche ai file
watch

3

Ho riscontrato questo errore dopo l'arresto anomalo del mio PC client, il jest --watchcomando che stavo eseguendo sul server ha persistito e ho provato a eseguirlo di jest --watchnuovo.

L'aggiunta /etc/sysctl.confdescritto nelle risposte sopra lavorato a questo problema, ma era anche importante trovare il mio vecchio processo tramite ps aux | grep nodee killesso.


0

Nel mio caso era correlato al vs-code in esecuzione sulla mia macchina Linux. Ho ignorato un avviso che è spuntato sul file watcher bla bla. La soluzione è nella pagina dei documenti vs-code per linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- questo-grande-lavoro-error-ENOSPC

La soluzione è quasi la stessa (se non la stessa) delle risposte accettate, ha solo più spiegazioni per chiunque arrivi qui dopo aver incontrato i problemi di vs-code.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.