自己的模块需要监控指定目录,因为要监控的目录过多,创建了很多WatchManager实例,结果报错,提示打开太多文件。Google了一下,有提示说修改配置的
//查看
cat /proc/sys/fs/inotify/max_user_instances
# 临时修改方式1
echo 99999999 > /proc/sys/fs/inotify/max_user_instances
# 临时修改方式2
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
# 写入到文件里,重启还在
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
虽然提高限制可以解决报错,但是我的项目里实例会累积的,再大的数都有到期的可能。看了下pyinotify的代码,发现还有一个close方法,如下:
# 创建实例
wm = WatchManager()
# 关闭实例
wm.close()
这样才最终解决问题。
================================================================================================
Linux应用程序、内核、驱动、后台开发交流讨论群(745510310),感兴趣的同学可以加群讨论、交流、资料查找等,前进的道路上,你不是一个人奥^_^。...