我有Node.js的问题并将文件上传到服务器.要将文件上传到服务器,请使用此插件.当开始上传到服务器的文件时,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
Run Code Online (Sandbox Code Playgroud)
Mur*_*hna 1194
运行以下命令以避免ENOSPC:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
Run Code Online (Sandbox Code Playgroud)
然后执行:
sysctl --system
Run Code Online (Sandbox Code Playgroud)
这也将在重新启动后持续存在. 技术细节来源
Blu*_*Blu 72
ENOSPC 意味着驱动器上没有空间.
也许/tmp是满的?您可以npm通过设置npm config set tmp /path/to/some/other/dir或删除/tmp文件夹中的所有内容来配置使用其他临时文件夹.
来源:npm 1.1.21无法在github中的npm的repo中编写ENOSPC.
注意我以上面描述的方式解决了我的问题.但是,请参阅下面的Murali Krishna的答案,这是更全面的.
Dan*_*ira 13
解决我的问题的一种简单方法是:
npm cache clear
Run Code Online (Sandbox Code Playgroud)
npm或它所控制的进程正在监视太多文件。在构建节点上更新max_user_watches可以永久修复它。对于debian,请在终端上输入以下内容:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
如果您想知道如何增加inotify观察者的数量,只需单击链接。
在 Linux 上,这可能是文件监视数量的限制。
开发服务器使用inotify来实现热重载。inotify API 允许开发服务器监视文件并在文件更改时收到通知。
默认的 inotify 文件监视限制因发行版而异(Fedora 上为 8192)。开发服务器的需求往往超过这个限制。
最好的方法是尝试暂时增加文件监视限制,如果您对此感到满意,则将其永久更改。但是请注意,这会更改整个系统的配置,而不仅仅是节点。
要查看您的当前限制:
sysctl fs.inotify.max_user_watches
Run Code Online (Sandbox Code Playgroud)
临时设置新限制:
# this limit will revert after reset
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
# now restart the server and see if it works
Run Code Online (Sandbox Code Playgroud)
要设置永久限制:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
如果您使用 VS Code,那么它应该无法在大型工作区中观看错误。
"Visual Studio Code is unable to watch for file changes in this large workspace" (error ENOSPC)
Run Code Online (Sandbox Code Playgroud)
它表明 VS Code 文件观察器的句柄不足,因为工作区很大并且包含许多文件。可以通过运行以下命令查看当前限制:
cat /proc/sys/fs/inotify/max_user_watches
Run Code Online (Sandbox Code Playgroud)
/etc/sysctl.conf通过编辑此行并将其添加到文件末尾,可以将该限制增加到最大值:
fs.inotify.max_user_watches=524288
Run Code Online (Sandbox Code Playgroud)
然后可以通过运行加载新值sudo sysctl -p。
注意:524288 是观看文件的最大值。虽然您可以观看任意数量的文件,但也建议您仅观看该限制。
小智 5
在 Ubuntu 18.04 上,我尝试了一个技巧,我用来重新激活 ionic/node 监视的文件,它也可以在这里工作。这对于那些无权访问系统 conf 文件的人可能很有用。
CHOKIDAR_USEPOLLING=1 npm start
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213084 次 |
| 最近记录: |