inotifywait 运行 守护进程模式给出错误无法初始化 inotify

inotifywait running daemon mode giving error Couldn't initialize inotify

我是运行 inotifywait (inotify-tools-3.14-1) 在守护进程模式下,但是,它给出了以下错误并且没有建立监视。此外,由于它在 while 循环中,因此创建了许多 inotifywait 守护进程。

如果 运行 --monitor 而不是 --daemon,我就没有这样的问题。有人可以帮忙修吗?非常感谢。

"Couldn't initialize inotify. Are you 运行 Linux 2.6.13 or later, and was the CONFIG_INOTIFY 选项在编译内核时启用?如果是这样, 神秘的东西出了问题。请发送电子邮件至 radu.voicilas@gmail.com 并提及你看到了这条消息。"

代码如下:

while true  # run indefinitely
do
  inotifywait --daemon --outfile /tmp/daemon.log --event close_write --format '%w%f %e %T' --timefmt '%F %T' $folder |  while read eventInfo
     do
        call_another_fun $eventInfo
        break
     done
   done

当后台有太多 inotify 进程 运行 时,我也会收到此 "Couldn't initialize inotify..." 错误消息。 pkill inotify 解决了这个问题。

正在卸载

apt-get remove inotify-tools

然后重新安装

apt-get install inotify-tools

帮我解决了。在卸载和重新安装之间,我碰巧也有 运行 sudo apt autoremove,但我怀疑它是否是解决方案的一部分。

您应该增加 inotify 实例的最大数量。

sudo sysctl fs.inotify.max_user_instances=2048

在我的桌面系统上,128 个实例的默认值对于一些 file-browsers、IDE 和电子应用程序来说太低了。它们都有多个 inotify 实例。

要使其永久化,请将此行添加到 /etc/sysctl.conf

fs.inotify.max_user_instances=2048