使用vscode remote ssh来编辑服务器上源码后,执行bitbake编译时,遇到了如下报错:ERROR:No space left on device or exceeds fs.inotify.max_user_watches?
可能的解决方法和原因:
首先可以尝试关闭vscode,然后在服务器再次运行bitbake
命令,大概率这次可以运行成功了。
出现这个问题的原因是:
当你看到这个通知时,它表明VS Code文件监视器的文件句柄已经用完了,而这些句柄是实现文件监视所需要的。在打开一个很大且包含许多文件的工作空间时,通常会发生这种情况。在调整平台限制之前,请确保将可能较大的文件夹(如Python .venv)添加到文件中。watcherExclude设置(下面有更多细节)。也有可能其他正在运行的应用程序消耗了太多的文件句柄,以至于没有留下任何文件句柄供VS Code使用。在这种情况下,关闭这些其他应用程序可能会有所帮助。
可以通过运行命令查看当前限制:
cat /proc/sys/fs/inotify/max_user_watches
通过编辑/etc/sysctl.conf (Arch Linux除外,请阅读下文)并在文件末尾添加这一行,可以将限制增加到最大:
fs.inotify.max_user_watches=524288
然后可以通过运行sudo sysctl -p
加载新值。
虽然524,288是可以监视的最大文件数,但如果您在一个内存特别受限的环境中,您可能希望降低这个数字。每个文件监视占用1080字节,因此假设所有524,288个监视都被消耗掉,结果是大约540 MiB的上限。