< 返回版块

BlackStone 发表于 2026-08-13 13:47

Tags:aynur,rust,pm2

简介

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

运行机制说明

  1. 仅支持 Linux /macOS 系统;
  2. 被托管的程序会运行在独立进程组;
  3. 执行 stop 时,先发送 SIGTERM 优雅终止信号,短暂等待后若进程未退出,则强制发送 SIGKILL 杀死进程;
  4. 程序意外退出时会自动重启;
  5. 若程序短时间内频繁崩溃(崩溃循环),会标记为异常状态,避免无限重启;
  6. 标准输出、标准错误会分别追加写入独立日志文件。

功能范围(设计取舍)

Aynur v1 刻意保持精简,不实现以下功能: PM2 配套生态配置文件、多实例集群模式、开机自启集成、远程管理、可视化面板、Windows 平台支持。


Ext Link: https://crates.io/crates/aynur

评论区

写评论

还没有评论

1 共 0 条评论, 1 页