问题:一些linux系统默认inotify 实例数量小于需要监视的文件数,导致FileSystemWatch不工作,且不异常。
Linux 内核对 inotify 实例数量和资源消耗有一定的限制。如果系统中使用了大量的 inotify 实例,可能会达到内核的资源限制,从而导致无法创建更多的 inotify 实例。
解决:
改变linux系统的inotify 实例数量
临时改变重启失效:echo 102400 | sudo tee /proc/sys/fs/inotify/max_user_watches
永久改变,需重启不失效
1.打开文件sudo vi /etc/sysctl.conf
2.添加一行fs.inotify.max_user_watches = 524288
3.使其生效sudo sysctl -p
4.查看sysctl fs.inotify.max_user_watches
cat /proc/sys/fs/inotify/max_queued_events
cat /proc/sys/fs/inotify/max_user_watches
cat /proc/sys/fs/inotify/max_user_instances
其它问题:
局部的FileSystemWatch变量当工作一段时间会被回收??不工作。
解决:
改变变量为属性或字段;