inotifywait 运行守护程序模式给出错误无法初始化 inotify
Posted
技术标签:
【中文标题】inotifywait 运行守护程序模式给出错误无法初始化 inotify【英文标题】:inotifywait running daemon mode giving error Couldn't initialize inotify 【发布时间】:2015-10-22 16:32:14 【问题描述】:我在守护程序模式下运行 inotifywait (inotify-tools-3.14-1),但是,它给出了以下错误并且没有建立监视。此外,由于它在 while 循环中,因此创建了许多 inotifywait 守护进程。
如果使用--monitor 而不是--daemon 运行,我没有这样的问题。有人可以帮忙修复它吗?非常感谢。
"无法初始化 inotify。您运行的是 Linux 2.6.13 或更高版本,并且是 编译内核时启用 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
【问题讨论】:
【参考方案1】:当后台运行的 inotify 进程过多时,我也会收到“无法初始化 inotify...”错误消息。
pkill inotify
解决了这个问题。
【讨论】:
我没有任何inotify
进程正在运行,我仍然收到此错误。【参考方案2】:
卸载
apt-get remove inotify-tools
然后重新安装
apt-get install inotify-tools
帮我解决了。在卸载和重新安装之间,我碰巧也运行了sudo apt autoremove
,但我怀疑它是否是解决方案的一部分。
【讨论】:
【参考方案3】:您应该增加 inotify 实例的最大数量。
sudo sysctl fs.inotify.max_user_instances=2048
在我的桌面系统上,128 个实例的默认值对于一些文件浏览器、IDE 和电子应用程序来说太低了。它们都有多个 inotify 实例。
要使其永久化,请将此行添加到 /etc/sysctl.conf
fs.inotify.max_user_instances=2048
【讨论】:
以上是关于inotifywait 运行守护程序模式给出错误无法初始化 inotify的主要内容,如果未能解决你的问题,请参考以下文章
Bash 脚本:给出错误:gzip:<文件>.conf.gz:文件意外结束
错误:线程“守护程序运行状况统计”中的异常 java.lang.OutOfMemoryError:Java 堆空间
错误:无法在 http+docker://localhost 连接到 Docker 守护程序 - 它正在运行吗? [关闭]
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。 docker 守护进程是不是正在运行?带有自托管运行器的 Gitlab Cloud CI/CD 错误