node.js - reached - Grunt watch error-Waiting... Fatal error: watch ENOSPC
error: enospc: no space left on device, watch (6)
¿Por qué recibo el Waiting...Fatal error: watch ENOSPC
cuando ejecuto la tarea de vigilancia? ¿Cómo resuelvo este problema?
Cada vez que necesite ejecutar sudo something ...
para arreglar algo, debería hacer una pausa para pensar en lo que está pasando. Si bien la respuesta aceptada aquí es perfectamente válida, es tratar el síntoma en lugar del problema. Sorta el equivalente a comprar alforjas más grandes para resolver el problema de: error, no puede cargar más basura en el pony. Pony ya tiene tanta basura cargada, que se está desmayando de agotamiento.
Una alternativa (tal vez comparable a quitar el exceso de basura del poni y colocarlo en el basurero) es ejecutar:
npm dedupe
Entonces ve a felicitarte por hacer feliz a Pony.
Después de hacer un poco de investigación encontré la solución. Ejecute el siguiente comando.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Para Arch Linux, agregue esta línea a /etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
Después de intentar la respuesta de granada, puedes usar una solución temporal:
sudo bash -c ''echo 524288 > /proc/sys/fs/inotify/max_user_watches''
Esto hace lo mismo que la respuesta de kds , pero sin persistir los cambios. Esto es útil si el error solo ocurre después de un tiempo de actividad de su sistema.
En linux arreglas esto con el comando:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Me encontré con este error después de que mi PC cliente jest --watch
comando jest --watch
que estaba ejecutando en el servidor persistió, y traté de ejecutar jest --watch
nuevamente.
La adición a /etc/sysctl.conf
descrita en las respuestas anteriores funcionó en torno a este problema, pero también fue importante encontrar mi proceso anterior a través de ps aux | grep node
ps aux | grep node
y kill
.
Para averiguar quién está haciendo inotify instancias , pruebe este comando ( source ):
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
El mío se veía así:
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
Usando ps -p 2857
, pude identificar el proceso 2857 como sublime_text
. Solo después de cerrar todas las ventanas sublimes pude ejecutar mi script de nodo.