Bueno, parece haber resuelto mi problema ... ¿Pero cómo? ¿Por qué? ¿Tiene alguna fuente que explique qué está pasando (o qué estaba pasando)? ¿O puedes hacerlo tú mismo? De todos modos, gracias ...
slacktracer
116
El sistema tiene un límite de cuántos archivos puede ver un usuario. Puedes quedarte sin relojes bastante rápido si tienes a Grunt ejecutándose con otros programas como Dropbox. Este comando aumenta la cantidad máxima de relojes que puede tener un usuario.
Benjamin Manns
6262
Arch Linux para añadir fs.inotify.max_user_watches=524288a /etc/sysctl.d/99-sysctl.confy luego ejecutar sysctl --system. Esto también persistirá en todos los reinicios. Para más detalles: wiki.archlinux.org/index.php/Sysctl
explicación:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf escribe al final del archivo /etc/sysctl.conf la línea "fs.inotify.max_user_watches = 524288" sudo sysctl -p reconfigura el kernel en tiempo de ejecución, cargando el archivo /etc/sysctl.conf como parámetro
kds
186
Cada vez que necesites correr sudo something ...para arreglar algo, deberías hacer una pausa para pensar en lo que está sucediendo. Si bien la respuesta aceptada aquí es perfectamente válida, trata el síntoma en lugar del problema. Ordena el equivalente de comprar alforjas más grandes para resolver el problema de: error, no se puede cargar más basura en el pony. Pony ya tiene tanta basura cargada, que el pony se desmaya por el agotamiento.
Una alternativa (quizás comparable a quitar el exceso de basura del pony y colocarlo en el basurero) es ejecutar:
¿Qué hace exactamente? Solucionó mi problema con seguridad. Gracias @grenade
Arjun KR
44
El comando 'npm dedupe' recorre el árbol del módulo npm y mueve todos los paquetes en el árbol tanto como sea posible. El resultado es un árbol plano. Mueve un paquete incluso cuando no está duplicado. Puede leer más sobre lo que sucede con las diferentes versiones de módulos en este caso, en docs.npmjs.com/cli/dedupe
Arun Reddy
1
no ayudó, lo intenté sudoy ahora está funcionando para mí.
asedsami
66
En mi caso, mi problema parece ser tener instalado Dropbox, que parece usar muchos relojes. Así que tuve que usar: fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pcomo en la respuesta aceptada, pero +1 para enseñarmenpm dedupe
Esto hace lo mismo que la respuesta de kds , pero sin persistir en los cambios. Esto es útil si el error solo ocurre después de un tiempo de actividad de su sistema.
Esta debería ser la respuesta aceptada ya que el problema es causado naturalmente por lo que se está ejecutando en este momento y no por una mala configuración (ver el ejemplo "pony").
arielnmz
7
Para averiguar quién está haciendo instancias de inotify , pruebe este comando ( fuente ):
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
Utilizando 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.
lo mismo conmigo para vscode pero creo que también está relacionado con los relojes de archivo
pcnate
3
Me encontré con este error después de que mi PC cliente se bloqueó, el jest --watchcomando que estaba ejecutando en el servidor persistió e intenté ejecutarlo jest --watchnuevamente.
La adición al /etc/sysctl.confdescrito en las respuestas anteriores dio evitar este problema, sino que también era importante encontrar mi antiguo proceso a través ps aux | grep nodey killél.
La solución es casi la misma (si no la misma) que las respuestas aceptadas, solo tiene más explicaciones para cualquiera que llegue aquí después de encontrarse con los problemas del código vs.
grunt
ningún programa que use inotify debajo. Hay una buena explicación en unix.stackexchange.com/questions/13751/… .Respuestas:
Después de investigar un poco encontró la solución. Ejecute el siguiente comando.
Para Arch Linux, agregue esta línea a /etc/sysctl.d/99-sysctl.conf:
fuente
fs.inotify.max_user_watches=524288
a/etc/sysctl.d/99-sysctl.conf
y luego ejecutarsysctl --system
. Esto también persistirá en todos los reinicios. Para más detalles: wiki.archlinux.org/index.php/Sysctlnpm dedupe
Lo aclaró para mí. problemaecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
escribe al final del archivo /etc/sysctl.conf la línea "fs.inotify.max_user_watches = 524288"sudo sysctl -p
reconfigura el kernel en tiempo de ejecución, cargando el archivo /etc/sysctl.conf como parámetroCada vez que necesites correr
sudo something ...
para arreglar algo, deberías hacer una pausa para pensar en lo que está sucediendo. Si bien la respuesta aceptada aquí es perfectamente válida, trata el síntoma en lugar del problema. Ordena el equivalente de comprar alforjas más grandes para resolver el problema de: error, no se puede cargar más basura en el pony. Pony ya tiene tanta basura cargada, que el pony se desmaya por el agotamiento.Una alternativa (quizás comparable a quitar el exceso de basura del pony y colocarlo en el basurero) es ejecutar:
Entonces felicítate por hacer feliz a Pony.
fuente
sudo
y ahora está funcionando para mí.fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
como en la respuesta aceptada, pero +1 para enseñarmenpm dedupe
Después de probar la respuesta de la granada, puede usar una solución temporal:
Esto hace lo mismo que la respuesta de kds , pero sin persistir en los cambios. Esto es útil si el error solo ocurre después de un tiempo de actividad de su sistema.
fuente
Para averiguar quién está haciendo instancias de inotify , pruebe este comando ( fuente ):
El mío se veía así:
Utilizando
ps -p 2857
, pude identificar el proceso 2857 comosublime_text
. Solo después de cerrar todas las ventanas sublimes pude ejecutar mi script de nodo.fuente
Me encontré con este error después de que mi PC cliente se bloqueó, el
jest --watch
comando que estaba ejecutando en el servidor persistió e intenté ejecutarlojest --watch
nuevamente.La adición al
/etc/sysctl.conf
descrito en las respuestas anteriores dio evitar este problema, sino que también era importante encontrar mi antiguo proceso a travésps aux | grep node
ykill
él.fuente
En mi caso, estaba relacionado con el código vs que se ejecuta en mi máquina Linux. Ignoré una advertencia que apareció sobre el observador de archivos bla bla. La solución está en la página de documentos vs-code para linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in- this-large-workspace-error-enospc
La solución es casi la misma (si no la misma) que las respuestas aceptadas, solo tiene más explicaciones para cualquiera que llegue aquí después de encontrarse con los problemas del código vs.
fuente
En mi caso, descubrí que tengo un complemento agresivo para Vim, simplemente lo reinicié.
fuente