如何在WSL2中开启inotify?

Dav*_*son 3 inotify windows-subsystem-for-linux

inotify 在 WSL1 中工作。然后,由于 GNU 软件中不支持的功能,它在 WSL2 中被故意关闭,现已解决。

如何在 WSL2 中启用或打开 inotify?

Not*_*1ds 10

WSL2 支持 inotify,但仅在基于 Linux 的 ext4 文件系统上支持。您可能遇到的问题是,它无法在使用 9P 协议(​​例如)或这些驱动器上任何文件的符号链接安装的Windows驱动器上运行。/mnt/c

我不知道这是(根据问题)由于“GNU 软件中不受支持的功能现已解决”,也不是“故意关闭”。据我了解,WSL 团队只是还没有在 9P 中“探索”它(他们在2019 年构建会议上的说法)。

确实如此,正如您提到的,通过 drvfs 安装的 Windows 驱动器上的 WSL1 工作,并且使用 WSL1 仍然是许多开发任务的可行选择。当然,只有当您要求观看的文件位于 Windows 驱动器上时才需要这样做。另请注意,WSL1实际上使用了 Windows 驱动器(通过 WSL1 目录中的某种覆盖),因此如果 inotify 对其中一个文件系统有效,那么它可能出于相同的原因对两者都有效(系统调用转换的相同实现)。

不过,如果它符合您的工作流程,最简单的解决方案是将您的项目移动到 WSL/Linux/ext4 文件系统上的某个位置,例如您的$HOME文件夹下(同样,使用符号链接)。

至于如何启用它,我认为是不可能的。虽然 9P 客户端是开源的,并且包含在此处的WSL2 内核 Github 项目中,但据我所知,在 Windows 中运行并提供对这些驱动器的访问的服务器仍然是闭源的。

欲了解更多详情,请参阅此答案