Ubuntu下React项目启动遇ENOSPC错误:已设max_user_watches仍报错
解决Ubuntu 18.04.3 LTS中npm serve启动时的ENOSPC错误
我之前在Ubuntu环境下也碰到过一模一样的问题,虽然修改fs.inotify.max_user_watches是常见方案,但有时候光改这个还不够,试试下面这些步骤:
1. 确认sysctl配置是否生效
你已经在/etc/sysctl.conf添加了fs.inotify.max_user_watches=524288,但首先得确保这个配置已经加载:
- 执行命令加载配置:
sudo sysctl -p - 验证当前值是否正确:
cat /proc/sys/fs/inotify/max_user_watches
如果输出不是524288,检查一下/etc/sysctl.conf是否保存正确,或者有没有拼写错误。
2. 补充其他inotify相关限制
除了文件监视器数量,还有两个参数也可能导致这个错误,把它们也加到/etc/sysctl.conf末尾:
fs.inotify.max_user_instances=512 fs.inotify.max_queued_events=16384
添加后再次执行sudo sysctl -p加载配置。
3. 检查占用inotify资源的进程
有时候是其他程序(比如IDE、文件同步工具、备份软件)占用了大量监视器,导致npm没法申请到足够的资源:
- 查看当前所有使用inotify的进程:
find /proc/*/fd -lname anon_inode:inotify | cut -d/ -f3 | xargs -I '{}' cat /proc/'{}'/status | grep -E '^Name:\|^Pid:'
找到那些占用资源多的进程,暂时关闭它们,再尝试启动项目。
4. 清除npm缓存并重装依赖
有时候npm缓存或依赖损坏也会触发奇怪的错误:
- 清除缓存:
npm cache clean --force - 删除
node_modules目录和package-lock.json:rm -rf node_modules package-lock.json - 重新安装依赖:
npm install
然后再用npm serve启动项目。
5. 尝试调大监视器数量或重启系统
如果上面的步骤都没用,可以试试把fs.inotify.max_user_watches调得更大,比如改成1048576,加载配置后重启电脑(确保所有进程都重新读取了配置),再启动项目。
内容的提问来源于stack exchange,提问作者Proteeti Prova
相关产品推荐
相关产品推荐

