日常运维
Monoceros 的大部分运维操作都围绕 /mono 主命令展开。你可以通过下面这套顺序,快速完成部署后的检查、热重载和故障排查。
首次部署建议流程
- 先执行
/mono version,确认当前加载的插件版本。 - 再执行
/mono status,确认脚本、分发器、调度、数据包、工作流等服务是否正常注册。 - 执行
/mono selfcheck,查看当前环境是否存在明显问题。 - 最后执行一次
/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 | 打开详细日志,方便排查热重载、脚本执行或资源加载问题 |
脚本相关排查
如果你怀疑脚本没有执行,可以按这个顺序检查:
/mono script reload/mono script stats/mono script task list/mono debug- 重新触发一次对应事件或命令
如果有脚本卡住不退出,你可以用 /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>:清理异常实例
分发器相关排查
如果事件没有触发,优先检查:
- 分发器 ID 是否正确
listen-event是否写对 Bukkit 事件类名- 分发器是否被禁用
- 事件是否已被取消,而你的定义又没有正确处理
ignore-cancelled
推荐命令:
/mono dispatcher reload/mono dispatcher enable <id>/mono dispatcher disable <id>
数据包功能排查
Wireshark 相关问题通常和两个全局开关有关:
wireshark.allow-interceptwireshark.allow-rewrite
即使你的 Tap 文件里已经写了 intercept: true 或 rewrite,这两个全局开关没开,对应能力也不会真正生效。
处理“改了文件但没生效”
如果你遇到“文件已经保存,但功能没变化”,通常从这几个方向排查:
- 文件是不是放在了正确目录下
- YAML 格式是否正确
- 文件监听是否被关闭(
script.watcher-throttle-ms <= 0) - 这次改动是否需要执行
/mono reload、/mono script reload、/mono schedule reload或/mono dispatcher reload
如果你想看更细的排查信息,可以继续阅读 ../ops/index.md。