📜  vscode max_user_watches (1)

📅  最后修改于: 2023-12-03 15:35:37.772000             🧑  作者: Mango

Visual Studio Code (VS Code)与max_user_watches

如果你是一名开发者,并且使用VS Code进行编码工作,那么你可能会遇到一个名叫“max_user_watches”的问题。这个问题可能会阻止你在VS Code中使用某些功能或插件。本文将介绍这个问题的原因、解决方案和预防措施。

1. 什么是max_user_watches?

在Linux系统中,max_user_watches是一个参数,它定义了用户可以监视的文件的数量。当此数量超出限制时,系统会停止监视新的文件,这可能会导致问题。

默认情况下,此参数的值可能会因系统而异。较新的Linux发行版(如Ubuntu 18.04)将该值设置为8192,而较旧的Linux发行版可能将其设置为较低的值。

2. VS Code中的max_user_watches问题

很多VS Code插件需要监视文件系统以实现其功能。例如,当你编辑一个JavaScript文件时,VS Code的内置JavaScript语言服务会监视其他JavaScript文件以便在编辑器中提供智能提示。

当你使用群晖、Ubuntu等操作系统时,你可能会遇到如下错误提示:

error: ENOSPC: System limit for number of file watchers reached, watch ...

这就是因为max_user_watches的限制导致的错误。

3. 如何解决max_user_watches问题

解决此问题需要两个步骤:

3.1. 临时增加max_user_watches

你可以通过在终端中运行以下命令来临时增加max_user_watches的值:

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

上面的命令将max_user_watches的值增加到524288,你可以根据自己的需要调整这个值。但请注意,该更改在每次重启系统后都会失效。

3.2. 永久增加max_user_watches

要永久增加max_user_watches的值,你需要编辑/etc/sysctl.conf文件并添加以下行:

fs.inotify.max_user_watches=524288

保存并关闭文件,然后在终端中运行以下命令以使更改生效:

sudo sysctl -p

现在你应该可以使用VS Code插件了,而不受max_user_watches限制的影响。

4. 预防措施

为了防止出现max_user_watches问题,你可以在使用VS Code之前增加max_user_watches的值,这样就不需要在编辑器中运行命令。

要做到这一点,请编辑/etc/sysctl.conf文件并添加以下行:

fs.inotify.max_user_watches=524288

保存并关闭文件,然后在终端中运行以下命令以使更改生效:

sudo sysctl -p

现在你可以在以后使用VS Code了,而不必担心max_user_watches问题了。

5. 结论

在Linux系统中,max_user_watches问题可能会阻止你在VS Code中使用某些功能或插件。为了解决这个问题,你可以通过临时或永久增加max_user_watches的值来使VS Code插件工作正常。你可以使用预防措施来避免max_user_watches问题。