我正在运行带有gevent和gevent-inotifyx的python,使用IN_CLOSE_WRITE
mask来监视文件的任何修改,以等待文件在写入后关闭。我的活动第一次被炒鱿鱼,但之后就没有了。我使用vim手动编辑文件。
使用了不同的日志文件进行监视,并且按预期工作。这是一个python日志文件,当日志文件随内容改变时,我会触发一个事件。
以前有人遇到过这种情况吗?这可能是由于一些同步或刷新到磁盘?
最佳答案
默认情况下,Vim将文件内容写入临时文件,然后将其移动到原始文件上,请参见:help backup
。因为这现在是一个不同的文件(句柄),所以您的事件停止触发。
您可以通过设置Vim覆盖原始文件
:set backupcopy=yes
如果你想一般地处理这个问题,你就必须监视文件的目录,同时监视文件的移动。
关于python - inotify IN_CLOSE_WRITE仅对手动编辑的文件触发一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20128049/