Node.JS错误:ENOSPC

我有一个node.js和上传文件到服务器的问题。 上传文件到服务器我使用这个插件 。 当开始file upload到服务器node.js进程崩溃并显示错误:

错误:ENOSPC。

服务器代码不运行。

 $ 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意味着驱动器上没有空间。

也许/tmp已满? 您可以通过设置npm config set tmp /path/to/some/other/dir来configurationnpm以使用不同的临时文件夹,或者可以从/tmp文件夹中删除所有内容。

资料来源: npm 1.1.21不能写,ENOSPC在npm的github中的回购。

注意我以上述源代码的方式解决了我的问题。 但是,请参阅下面的Murali Krishna的答案 ,这是更全面的。

运行以下命令以避免ENOSPC:

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

对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf

 fs.inotify.max_user_watches=524288 

然后执行:

 sysctl --system 

这也将在重启之后持续存在。

https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details

不能相信这一点,但@grenade指出, npm dedupe将修复原因(太多的文件),而不是症状。

来源: Grunt手表错误 – 正在等待…致命错误:观看ENOSPC 。

我解决了我的问题,杀死所有的跟踪器控制过程(如果你使用GDM,你可以尝试,如果脚本在服务器上运行,显然不是你的情况)

 tracker-control -r 

我的设置:与GNOME 3 Arch

如果在Linux文件系统上的/tmp挂载被挂载为溢出(通常大小为1MB),这可能是由于您没有将/tmp指定为自己的分区,并且根文件系统已满并且/tmp被重新挂载为备用文件系统。

为了解决这个问题,清除空间后,只需卸载回退,它应该重新安装在原来的位置:

 sudo umount overflow 

对于我来说,我已经达到了用户可以拥有的最大数量的文件

quota -s检查你的号码,文件下面的号码不要太接近配额

如果在尝试运行ember server命令时遇到此错误,请使用rm -rf tmp目录。 然后再运行ember s 。 它帮助了我。

重新启动机器解决了我的问题。 我第一次尝试擦/tmp/节点仍然抱怨。

在我的情况下,在Linux上,sudoing修复了这个问题。

例:

 sudo gulp dev