Node.js: ¿qué es el error ENOSPC y cómo solucionarlo?
Tengo un problema con Node.js y con la carga de archivos al servidor. Para cargar archivos al servidor utilizo este complemento . Al iniciar la carga del archivo al servidor, el proceso de Node.js falló y muestra el error:
Error: ENOSPC.
El código del servidor no se ejecuta.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 4.1G 3.5G 55% /
udev 288M 8.0K 288M 1% /dev
tmpfs 119M 168K 118M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 296M 0 296M 0% /run/shm
/dev/xvdf 9.9G 3.0G 6.5G 32% /vol
overflow 1.0M 1.0M 0 100% /tmp
ENOSPC significa que no hay espacio en el disco.
Ejecute el siguiente comando para evitar ENOSPC:
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
Luego ejecuta:
sysctl --system
Esto también persistirá durante los reinicios. Fuente de detalles técnicos
ENOSPC
significa que no hay espacio en el disco.
¿ Quizás /tmp
esté lleno? Puede configurar npm
para usar una carpeta temporal diferente configurando npm config set tmp /path/to/some/other/dir
, o tal vez eliminar todo lo que esté fuera de la /tmp
carpeta.
Fuente: npm 1.1.21 no puede escribir, ENOSPC en el repositorio de npm en github.
Tenga en cuenta que resolví mi problema de la forma descrita en la fuente anterior. Sin embargo, consulte la respuesta de Murali Krishna , que es más completa.
Una forma sencilla de resolver mi problema fue:
npm cache clear
npm o un proceso controlado por él está vigilando demasiados archivos. Actualizar max_user_watches en el nodo de compilación puede solucionarlo para siempre. Para Debian ponga lo siguiente en la terminal:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Si quieres saber cómo aumentar la cantidad de observadores de inotify, solo haz clic en el enlace.