OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE) 问题解决
生活随笔
收集整理的這篇文章主要介紹了
OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE) 问题解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
自己的模塊需要監控指定目錄,因為要監控的目錄過多,創建了很多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),感興趣的同學可以加群討論、交流、資料查找等,前進的道路上,你不是一個人奧^_^。...
?
總結
以上是生活随笔為你收集整理的OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE) 问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python logging动态调整日志
- 下一篇: win7旗舰版通用密码忘记了怎么办 忘记