Ubuntu重启机器后Nuxt开发服务器npm run dev无法运行求助
解决Nuxt.js开发服务器启动报错ENOSPC的问题
嘿,这个问题我之前折腾过好一阵!你碰到的ENOSPC错误,本质是Linux系统给进程分配的文件监听数量上限不够导致的。
Nuxt在开发模式下依赖webpack的热重载功能,它需要监听项目里所有文件的变化,而Ubuntu 18.04默认的inotify(Linux用来实现文件监听的机制)监听配额比较低,重启系统后这个配额会重置回默认值,所以每次开机启动项目都会踩坑。
你那个怪异的临时修复能生效其实是巧合——创建新项目并启动dev服务时,系统可能临时调整了资源分配,但这完全是碰运气,根本解决不了根源问题。
下面是两种靠谱的解决方案:
1. 临时生效(当前会话有效,重启后失效)
直接在终端执行以下命令,立即提升监听上限:
sudo sysctl fs.inotify.max_user_watches=524288 sudo sysctl -p
2. 永久生效(重启系统后依然有效)
这个方法一劳永逸:
- 打开系统sysctl配置文件:
sudo nano /etc/sysctl.conf - 在文件的末尾添加一行配置:
fs.inotify.max_user_watches=524288 - 保存并退出nano编辑器(按
Ctrl+O回车保存,再按Ctrl+X退出) - 执行命令让新配置立即生效:
sudo sysctl -p
额外检查项
如果你执行完上面的操作还是有问题,可以做以下排查:
- 查看当前的监听上限是否修改成功:
cat /proc/sys/fs/inotify/max_user_watches - 查看系统当前总文件监听数,确认是否有其他进程占用了大量配额:
lsof | grep inotify | wc -l - 查看哪些进程在占用文件监听资源:
find /proc/*/fd -lname anon_inode:inotify | cut -d/ -f3 | xargs -I{} cat /proc/{}/cmdline | head -20
内容的提问来源于stack exchange,提问作者Nick Briz




