Skip to content

运行 ​

配置查找顺序 ​

没有 -c 时,mayami 按以下顺序寻找第一份存在的配置:

  1. ./config.yaml
  2. ./mayami.yaml
  3. $XDG_CONFIG_HOME/mayami/config.yaml
  4. $XDG_CONFIG_HOME/mayami/mayami.yaml
  5. ~/.config/mayami/config.yaml
  6. ~/.config/mayami/mayami.yaml
  7. /etc/mayami/config.yaml
  8. /etc/mayami/mayami.yaml

也可以用环境变量 MAYAMI_CONFIG 指定文件。mayami init 默认写 ./mayami.yaml,不是 ./config.yaml。

全局参数 ​

参数环境变量含义
-c, --config FILEMAYAMI_CONFIG配置文件
-D, --data DIRMAYAMI_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/mayami

run --log LEVEL 临时覆盖配置里的日志级别:

sh
mayami run --log debug

级别是 error、warn、info、debug 或 trace。

日志 ​

log 可以直接写级别,也可以写成映射:

yaml
log:
  level: info
  timestamp: true
  output: mayami.log

output 省略时写标准输出;写文件时以 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/mayami

check 读取配置、规则集和其余可以离线构建的对象,不监听端口,也不启动 capture。第一次运行前先执行它。

页面历史

开发者设计、代码地图和验证记录保留在仓库 manual/。