运行维护 / 实时监控
实时监控提示
“最近出现错误”
这表示文件事件监控器最近报告过错误。大曲库常见原因之一是宿主机的 Linux inotify 监控数量上限不足,但这条提示本身不能确定具体错误;请按下面的顺序核对。
这里的“1 个文件夹”是启用了实时监控的音乐根目录数量,不是实际使用的监控名额。inotify 不会自动递归观察子目录;MusicArk 需要给各级子目录分别建立 watch。
先读取实际限额和目录数量
在 MusicArk 容器终端运行以下只读命令。第二行的路径以官网示例挂载 /media/library 为准;若部署时改过挂载路径,请替换它。
cat /proc/sys/fs/inotify/max_user_watches
find /media/library -type d | wc -l
如果监控目录数已经接近或超过限额,就需要在 NAS/Linux 宿主机调整该内核参数,并留出其他进程使用的余量。只在容器里重启 MusicArk,不会提高宿主机限额。
群晖 DSM:在宿主机保存开机任务
- 打开 控制面板 → 任务计划 → 新增 → 触发的任务 → 用户定义的脚本。
- “常规”中选择 root 用户、开机事件,并保持任务已启用。
- 在“任务设置”的脚本框填入以下命令并保存;随后选中任务,点击 运行,立即应用。
echo 65536 > /proc/sys/fs/inotify/max_user_watches
65536 是示例值,应高于实际需要监控的目录数量,并为同一宿主机上的其他监控程序预留空间。该参数属于宿主机内核,不能通过 MusicArk 的 Compose 环境变量设置。
核对生效,再重建监控
再次在容器终端运行下面的命令,确认读到的是新值,而不是原来的 8192:
cat /proc/sys/fs/inotify/max_user_watches
确认新值后,重启 MusicArk 容器,再打开 设置 → 系统状态刷新“实时监控”。如果读数仍未改变,应先检查 DSM 任务是否保存成功、是否由 root 执行,以及是否手动点击了“运行”。
限额足够却仍有错误
此时要依据容器日志中的具体错误继续排查。可在 NAS 宿主机执行:
docker logs --tail 200 musicark
查找 realtime folder watches could not be synchronized、inotify 或 watch 相关记录。目录不可访问、文件事件队列溢出等情况也可能触发监控错误,不能仅凭状态提示继续调高限额。NAS 挂载或网络文件系统还可能漏传事件;可以在音乐文件夹设置中启用低频“定时扫描”进行一致性对账。