本地 Node 服务生命周期管理工具(Tauri 2 + React + Rust)。
当前版本:0.1.0
应用标识:com.nodemanager.desktop
目标平台:Windows x64
- 服务 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、进程启动时间及命令行参数进行严格校验,安全接管依然存活的服务。
- 实时日志与落盘:
- 流式日志事件推送 (
log://{serviceId}),支持前端虚拟列表高效渲染。 - 支持单文件容量切割与滚动历史备份,内存中保留最长日志行数可灵活配置。
- 流式日志事件推送 (
- 进程树 CPU / 内存监控:自动聚合包含根
cmd.exe及其所有子孙 Node 进程的 CPU 占用率与内存消耗。 - 端口检测与反查:支持声明端口冲突预警、运行中进程 PID 监听端口反查以及常见开发端口占用扫描。
- Node 进程管理:独立
Node 进程页面,实时列出系统全量 node 进程(含 PID、命令行、CPU、内存及托管归属),支持对非托管进程的一键强杀。
- 基础设置:支持自定义 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 -- --checksrc-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 安装程序