运行
配置查找顺序
没有 -c 时,mayami 按以下顺序寻找第一份存在的配置:
./config.yaml./mayami.yaml$XDG_CONFIG_HOME/mayami/config.yaml$XDG_CONFIG_HOME/mayami/mayami.yaml~/.config/mayami/config.yaml~/.config/mayami/mayami.yaml/etc/mayami/config.yaml/etc/mayami/mayami.yaml
也可以用环境变量 MAYAMI_CONFIG 指定文件。mayami init 默认写 ./mayami.yaml,不是 ./config.yaml。
全局参数
| 参数 | 环境变量 | 含义 |
|---|---|---|
-c, --config FILE | MAYAMI_CONFIG | 配置文件 |
-D, --data DIR | MAYAMI_DATA | 相对路径的基准,也是 mayami 自己保存规则集、provider、cache 和面板的位置;不写时用配置文件所在目录 |
--color auto|always|never | 输出是否使用颜色,默认 auto |
启动
sh
mayami run -c /etc/mayami/mayami.yaml -D /var/lib/mayami没有子命令等同于 run:
sh
mayami -c /etc/mayami/mayami.yaml -D /var/lib/mayamirun --log LEVEL 临时覆盖配置里的日志级别:
sh
mayami run --log debug级别是 error、warn、info、debug 或 trace。
日志
log 可以直接写级别,也可以写成映射:
yaml
log:
level: info
timestamp: true
output: mayami.logoutput 省略时写标准输出;写文件时以 0640 创建,并在 SIGHUP 时重新打开。
信号
| 信号 | 行为 |
|---|---|
SIGHUP | 重新打开日志并读配置;成功时切换快照,失败时保留正在运行的状态 |
SIGUSR1 | 立即重新抓取所有带 URL 的规则集和 provider |
SIGINT、SIGTERM | 正常停下,清理自己的内核和网络状态后退出 |
mayami api reload 通过控制 API 触发与 SIGHUP 相同的配置重读。
systemd
Debian 包使用持续运行的单元;-D 放在数据目录:
ini
[Service]
User=mayami
StateDirectory=mayami
StateDirectoryMode=0700
UMask=0077
ExecStart=/usr/bin/mayami -c /etc/mayami/mayami.yaml -D /var/lib/mayami run
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=10s使用 capture 时需要额外能力和 root,Debian 包通过 drop-in 提供。完整安装与启动边界见 安装。
数据与缓存
-D 影响配置中的相对路径以及以下内容的位置:
- 下载的规则集和 provider;
cache_file的默认cache.db;- 下载的面板;
- 其他运行时持久状态。
不写 -D 时这些内容都相对于配置文件目录。多个实例共享存储时,先用各配置的 cache_file.cache_id 区分。
检查而不启动
sh
mayami check -c /etc/mayami/mayami.yaml -D /var/lib/mayamicheck 读取配置、规则集和其余可以离线构建的对象,不监听端口,也不启动 capture。第一次运行前先执行它。