跳到主要内容

日常运维

Monoceros 的大部分运维操作都围绕 /mono 主命令展开。你可以通过下面这套顺序,快速完成部署后的检查、热重载和故障排查。

首次部署建议流程

  1. 先执行 /mono version,确认当前加载的插件版本。
  2. 再执行 /mono status,确认脚本、分发器、调度、数据包、工作流等服务是否正常注册。
  3. 执行 /mono selfcheck,查看当前环境是否存在明显问题。
  4. 最后执行一次 /mono reload,确认热重载链路可以正常工作。

如果你只是刚把插件放进 plugins/ 目录,这四步基本就能判断当前环境是否可用。

配置改动后的推荐操作

改了 config.yml

  • 直接执行 /mono reload
  • 如果你关闭了文件监听,再手动执行一次 /mono reload

改了 script/ 下的脚本

  • 推荐执行 /mono script reload
  • 如果你想提前编译缓存,再执行 /mono script preheat
  • 如果要看缓存效果,执行 /mono script stats

改了 dispatcher/ 下的分发器

  • 执行 /mono dispatcher reload
  • 如果只是临时停用某个分发器,也可以直接用 /mono dispatcher disable <id>

改了 schedule/ 下的调度定义

  • 执行 /mono schedule reload
  • 再用 /mono schedule detail 检查自动启动的调度是否已经重新注册

常用排查命令

命令适用场景
/mono status看当前服务是否都已加载
/mono selfcheck看当前环境是否存在明显错误或警告
/mono diag dump导出运行态信息,适合排查某个系统当前到底有没有注册成功
/mono diag cache查看缓存统计,适合排查脚本预热或命中率
/mono debug打开详细日志,方便排查热重载、脚本执行或资源加载问题

脚本相关排查

如果你怀疑脚本没有执行,可以按这个顺序检查:

  1. /mono script reload
  2. /mono script stats
  3. /mono script task list
  4. /mono debug
  5. 重新触发一次对应事件或命令

如果有脚本卡住不退出,你可以用 /mono script task stop <pid> 停掉某个任务,也可以用 /mono script stop <id> 一次性停掉某个脚本定义下的全部任务。

调度相关排查

调度问题通常集中在三件事:

  • 调度有没有成功加载
  • 调度有没有启动
  • 调度是否被暂停或达到最大运行次数

推荐命令:

  • /mono schedule detail:看全部调度概览
  • /mono schedule detail <id>:看某个调度的实例详情
  • /mono schedule start <id>:手动启动
  • /mono schedule pause <id> / /mono schedule resume <id>:检查暂停状态
  • /mono schedule stop <id>:清理异常实例

分发器相关排查

如果事件没有触发,优先检查:

  1. 分发器 ID 是否正确
  2. listen-event 是否写对 Bukkit 事件类名
  3. 分发器是否被禁用
  4. 事件是否已被取消,而你的定义又没有正确处理 ignore-cancelled

推荐命令:

  • /mono dispatcher reload
  • /mono dispatcher enable <id>
  • /mono dispatcher disable <id>

数据包功能排查

Wireshark 相关问题通常和两个全局开关有关:

  • wireshark.allow-intercept
  • wireshark.allow-rewrite

即使你的 Tap 文件里已经写了 intercept: truerewrite,这两个全局开关没开,对应能力也不会真正生效。

处理“改了文件但没生效”

如果你遇到“文件已经保存,但功能没变化”,通常从这几个方向排查:

  • 文件是不是放在了正确目录下
  • YAML 格式是否正确
  • 文件监听是否被关闭(script.watcher-throttle-ms <= 0
  • 这次改动是否需要执行 /mono reload/mono script reload/mono schedule reload/mono dispatcher reload

如果你想看更细的排查信息,可以继续阅读 ../ops/index.md