是因为 `watchdog` 使用 Linux 的 `inotify` 来监控目录,但系统默认对 `inotify` 的监控数量有限制。你当前监控的目录树较大(比如 `transfer/` 下有很多子目录),达到了这个限制。
---
### ✅ 解决方案:增加 `inotify` 的 `watch` 限制
可以通过修改系统参数 `fs.inotify.max_user_watches` 来解决。
#### 步骤如下:
#### 1. 查看当前系统的 `inotify` 限制:
cat /proc/sys/fs/inotify/max_user_watches
你可能会看到一个值,比如 `8192`。
#### 2. 临时修改限制(立即生效,但重启后会失效):
sudo sysctl fs.inotify.max_user_watches=1048576
#### 3. 永久修改限制:
将下面这一行添加到 `/etc/sysctl.conf` 文件末尾:
fs.inotify.max_user_watches=1048576
然后执行:
sudo sysctl -p
这样可以让设置在系统重启后依然生效。
---
### ⚠️ 注意事项:
- 你可以根据需要调整上限,例如 `524288`、`2097152` 等,具体取决于你监控的文件夹数量。
- 太大的值会稍微增加内存使用,但一般不会有太大影响。
---
确认是否还有其他需求?我也可以帮你更新脚本以支持更高效的监控方案(如定时扫描、避免递归过多)以减小系统负担。