inotify在WSL1工作。然后,由于GNU软件中的一个不受支持的特性,它在WSL2中被故意关闭,而这个特性现在已经解决了。
如何在WSL2中启用或打开inotify?
发布于 2021-12-08 13:08:05
inotify在WSL2中是受支持的,但只支持基于Linux的ext4文件系统。您可能遇到的问题是,它不能在Windows驱动器上工作,这些驱动器使用9P协议(例如/mnt/c)或指向这些驱动器上的任何文件的符号链接进行安装。
我不知道这是因为“GNU软件中的一个不受支持的特性,现在已经解决了”,也不知道它是“故意关闭的”。我的理解是,WSL团队只是没有在9P中“管道”(他们从2019 Build Conference上说的话)。
确实如此,正如您提到的,在通过drvfs挂载的WSL1驱动器上工作,对于许多开发任务来说,使用WSL1仍然是可行的选择。当然,只有当您要求所监视的文件位于Windows驱动器上时,这才是必要的。还请注意,WSL1确实为两个Linux文件系统使用了Windows驱动器(通过WSL1目录中的不同类型的覆盖),因此,如果inotify对一个文件系统有效,则可能出于相同的原因( syscall转换的相同实现),两者都能工作。
不过,如果符合您的工作流程,最简单的解决方案是将您的项目移到WSL/Linux/ext4 4文件系统上的某个地方,例如在您的$HOME文件夹下(同样,不使用符号链接)。
至于如何启用它,我认为这是不可能的。虽然9P客户端是开源的,并包含在WSL2内核Github项目here中,但据我所知,运行在Windows中并提供对这些驱动器的访问的服务器仍然是关闭源代码的。
有关更多细节,请参见this answer。
https://stackoverflow.com/questions/70273307
复制相似问题