简介
Aynur 是一款轻量、类 PM2 的进程守护工具,专为本地 Rust 二进制程序打造。
它会启动一个轻量本地后台守护进程,持续维持已配置程序的运行;将标准输出、标准错误输出重定向至日志文件,并提供一套通俗易懂的指令:启动、停止、重启、重载、列表查看、日志查看。
安装
cargo install aynur
快速上手
启动二进制程序:
aynur start ./target/release/gateway
默认以二进制文件名作为应用名称。例如上述命令会将该程序注册为 gateway。
自定义应用名称:
aynur start ./target/release/gateway -n api
在 -- 后为托管程序传递启动参数:
aynur start ./target/release/gateway -n api -- --port 3000
查看所有托管程序列表:
aynur list
停止、重启、重载、删除程序:
aynur stop api
aynur restart api
aynur reload api
# 重载并更新环境变量
aynur reload api --update-env
aynur delete api
查看日志:
aynur logs api
执行后会持续实时打印新的标准输出与错误日志,按下 Ctrl+C 终止日志输出。
清空指定程序日志:
aynur flush api
全部指令说明
# 启动程序
aynur start <二进制文件路径> [-n 应用名] [--cwd 工作目录] [--env-file 环境变量文件] [-- 程序启动参数...]
# 停止程序
aynur stop <应用名>
# 重启程序
aynur restart <应用名>
# 重载程序
aynur reload <应用名> [--update-env]
# 列出所有托管应用
aynur list
# 实时查看日志
aynur logs <应用名>
# 清空日志文件
aynur flush <应用名>
# 从守护列表移除程序
aynur delete <应用名>
环境与存储
程序运行状态文件默认存放于 ~/.aynur 目录:
~/.aynur/apps/:所有托管应用配置~/.aynur/logs/:各程序日志文件~/.aynur/daemon.pid:守护进程 PID 文件~/.aynur/daemon.sock:守护进程本地通信套接字
可通过环境变量 AYNUR_HOME 自定义存储目录:
AYNUR_HOME=/srv/aynur aynur list
启动程序时,Aynur 会捕获当前终端全部环境变量;若指定 --env-file,环境文件内的变量会覆盖原有环境变量。
aynur start ./target/release/gateway -n api --env-file .env
重载程序时默认沿用已保存的环境变量:
aynur reload api
如需重新读取当前终端环境与配置的环境文件、刷新变量后再重启程序:
aynur reload api --update-env
运行机制说明
- 仅支持 Linux /macOS 系统;
- 被托管的程序会运行在独立进程组;
- 执行 stop 时,先发送
SIGTERM优雅终止信号,短暂等待后若进程未退出,则强制发送SIGKILL杀死进程; - 程序意外退出时会自动重启;
- 若程序短时间内频繁崩溃(崩溃循环),会标记为异常状态,避免无限重启;
- 标准输出、标准错误会分别追加写入独立日志文件。
功能范围(设计取舍)
Aynur v1 刻意保持精简,不实现以下功能: PM2 配套生态配置文件、多实例集群模式、开机自启集成、远程管理、可视化面板、Windows 平台支持。
Ext Link: https://crates.io/crates/aynur
1
共 0 条评论, 1 页
评论区
写评论还没有评论