Linux中Inotify监控文件最大数量过少,致使程序不知道修改了文件。linux
注: Inotify 是一个 Linux 内核特性,它监控文件系统,而且及时向专门的应用程序发出相关的事件警告,好比删除、读、写和卸载操做等shell
咱们能够经过下面的shell命令来查看Inotify监控文件的最大数量:vim
sysctl -a | grep inotify
显示的结果:fs.inotify.max_queued_events
: 表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。fs.inotify.max_user_instances
: 表示每个real user ID可建立的inotify instatnces的数量上限,默认128.fs.inotify.max_user_watches
: 表示同一用户同时能够添加的watch数目(watch通常是针对目录,决定了同时同一用户能够监控的目录数量)spa
多是fs.inotify.max_user_watches太少,致使文件修改后不能监控到.net
修改系统的fs.inotify.max_user_watches
的值,可使用下列两种办法来修改code
sudo sysctl fs.inotify.max_user_watches=524288
sudo vim /etc/sysctl.conf
在文件的末尾加上事件
fs.inotify.max_user_watches=524288
从新从配置文件“/etc/sysctl.conf”加载内核参数设置图片
sudo sysctl -p /etc/sysctl.conf
使用上述查看命令来查看是否修改为功,执行结果为:
发现fs.inotify.max_user_watches
的数量已经变成咱们设置的值。get
注:想要了解更多sysctl知识,能够点击下面连接: sysctlit