Skip to content

About

本地 Node 服务生命周期管理工具

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Node Service Manager

本地 Node 服务生命周期管理工具(Tauri 2 + React + Rust)。

当前版本:0.1.0
应用标识:com.nodemanager.desktop
目标平台:Windows x64


核心功能

1. 服务生命周期管理

  • 服务 CRUD:增删改查 Node 服务配置,配置数据以原子写入模式持久化存储至 %APPDATA%/NodeManager/config.json。
  • 启动 / 停止 / 重启:
    • 启动命令基于 cmd /C 包装,原生兼容 npm / pnpm / yarn / node 及批处理脚本。
    • 停止操作采用优雅关闭(向目标进程组发送 CTRL_BREAK)与原生 Windows 进程树强杀(OpenProcess / TerminateProcess / WaitForSingleObject),确保无残留孤儿 Node 进程。
    • 优化后台辅助命令(如 netstat)创建逻辑,使用 CREATE_NO_WINDOW 彻底消除轮询时的控制台闪烁问题。
  • 服务状态机:统一状态流转 stopped ⚪ / starting 🟡 / running 🟢 / stopping 🟡 / crashed 🔴。
  • 自动重启策略:支持 none / on-failure / always 策略,可配置最大重启次数与重试延迟。
  • 进程接管与恢复:软件或系统异常重启后,通过持久化的 %APPDATA%/NodeManager/runtime.json 读取 PID、进程启动时间及命令行参数进行严格校验,安全接管依然存活的服务。

2. 观测与诊断

  • 实时日志与落盘:
    • 流式日志事件推送 (log://{serviceId}),支持前端虚拟列表高效渲染。
    • 支持单文件容量切割与滚动历史备份,内存中保留最长日志行数可灵活配置。
  • 进程树 CPU / 内存监控:自动聚合包含根 cmd.exe 及其所有子孙 Node 进程的 CPU 占用率与内存消耗。
  • 端口检测与反查:支持声明端口冲突预警、运行中进程 PID 监听端口反查以及常见开发端口占用扫描。
  • Node 进程管理:独立 Node 进程 页面,实时列出系统全量 node 进程(含 PID、命令行、CPU、内存及托管归属),支持对非托管进程的一键强杀。

3. 桌面体验与设置

  • 基础设置:支持自定义 Node PATH 前缀、日志保存目录、日志容量策略、主题模式(浅色/深色/跟随系统)、语言设置及常用扫描端口。
  • 系统托盘与开机自启:
    • 支持最小化/关闭窗口时隐藏至系统托盘,可从托盘右键恢复或彻底退出。
    • 集成 Tauri Autostart 插件,支持 Windows 开机后台启动(--minimized 模式)。

项目结构与存储

%APPDATA%/NodeManager/
├── config.json          # 服务配置与应用全局设置
├── runtime.json         # 运行时进程恢复标识(PID / 启动时间 / 命令行)
└── logs/{serviceId}.log # 各服务落盘日志

恢复边界说明:runtime.json 仅保存进程唯一标识。工具重启接管服务后,可继续监控资源、展示监听端口并正常执行停止/重启操作;由于系统机制限制,无法重新附着旧进程已建成的 stdout/stderr 管道。


技术栈

模块 技术
前端框架 React 18、TypeScript、Vite
UI 组件库 Ant Design (v5)、Zustand 状态管理
桌面壳 Tauri v2
后端 Core Rust、Tokio、sysinfo
系统集成 Windows Native API (Process Group / Toolhelp32 / Console API)
打包部署 WiX (MSI Installer)、NSIS Setup

开发与构建

环境要求

  • Node.js >= 18
  • Rust stable
  • Visual Studio 2022 Build Tools (包含 MSVC C++ 构建工具与 Windows SDK)

开发环境运行

npm install
npm run tauri:dev

若编译提示找不到 link.exe,请在 x64 Native Tools Command Prompt 中运行,或先执行 vcvars64.bat 环境脚本。

前后端构建与测试

# 前端生产构建 (TypeScript 校验 + Vite 构建)
npm run build

# Tauri 桌面应用发布打包
npm run tauri:build

# Rust 后端单元测试
cd src-tauri
cargo test

# 代码规范与 Rust Standard 代码检查
cargo clippy --all-targets -- -D warnings
cargo fmt --all -- --check

打包产物位置

src-tauri/target/release/
├── node-service-manager.exe                                    # 免安装单文件
└── bundle/
    ├── msi/Node Service Manager_0.1.0_x64_en-US.msi           # MSI 安装包
    └── nsis/Node Service Manager_0.1.0_x64-setup.exe          # NSIS 安装程序

About

本地 Node 服务生命周期管理工具

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages