You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL中inotify报错:执行max_user_watches调整命令提示文件不存在

解决WSL中sysctl: cannot stat /proc/sys/fs/inotify/max_user_watches: No such file or directory错误

这个问题其实很好理解——你用的是Windows 10 Build 1709的WSL,而这个版本的WSL属于WSL 1,它的内核是基于Windows内核的兼容层,并不支持fs.inotify.max_user_watches这个Linux内核参数,所以/proc/sys/fs/inotify/这个路径根本不存在,自然会触发报错。

下面给你两种解决思路,根据你的实际情况选择:

一、升级到WSL 2(彻底解决)

WSL 2使用真正的Linux内核,完全支持inotify相关参数,是最根本的解决办法。不过要注意,WSL 2要求Windows 10 Build 1903及以上(OS Build 18362+),所以你需要先升级Windows版本,之后按以下步骤操作:

  1. 启用WSL和虚拟机平台组件
    打开管理员权限的PowerShell,执行以下命令:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  2. 重启你的电脑
  3. 安装微软官方提供的WSL2 Linux内核更新包
  4. 设置WSL 2为默认版本
    回到PowerShell,执行:
    wsl --set-default-version 2
    
  5. 将现有Linux分发版切换到WSL 2
    先查看你的分发版名称:
    wsl --list --verbose
    
    然后执行切换命令(把<分发版名称>换成你实际的名称,比如Ubuntu):
    wsl --set-version <分发版名称> 2
    

完成后重新打开WSL,再执行你原来的命令就可以成功设置max_user_watches了。

二、无法升级Windows时的临时 workaround

如果暂时没法升级Windows到支持WSL2的版本,那WSL1里确实没法设置这个参数,你可以针对需要这个参数的程序做调整:

  • 把你的项目文件放在WSL自身的文件系统中(比如/home/你的用户名/下),而不是Windows的C/D盘,WSL1对自身文件系统的文件监听兼容性更好。
  • 如果是Node.js相关的工具(比如webpack、live-server),可以设置环境变量启用轮询模式,替代inotify:
    export CHOKIDAR_USEPOLLING=true
    
    或者在启动命令前加上这个变量,比如:
    CHOKIDAR_USEPOLLING=true npm start
    

内容的提问来源于stack exchange,提问作者Samuel B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:39:59