pm3:162⭐的 TOML 配置进程管理器
在容器化和 systemd 主导的时代,有时候你只需要一个简单的进程管理器来跑几个后台服务。pm3 就是这样一个工具——它用 Rust 编写,通过 TOML 配置文件管理进程,没有复杂的依赖,也没有陡峭的学习曲线。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | frectonz/pm3 |
| Stars | 162 |
| 语言 | Rust |
| 特点 | TOML 配置、轻量级、跨平台 |
| 最后更新 | 1月前 |
它解决了什么问题
传统的进程管理方案往往过于沉重:
- systemd:功能强大但配置复杂,且与 Linux 深度绑定
- PM2:Node.js 生态的霸主,但对非 Node 项目显得臃肿
- supervisord:Python 编写,配置语法略显陈旧
pm3 的定位很清晰:如果你只需要一个简单可靠的方式来启动、监控和重启几个进程,它刚刚好。
核心特性
TOML 配置
配置文件采用直观的 TOML 格式,一目了然:
[[process]]
name = "web-server"
cmd = "python -m http.server 8080"
[[process]]
name = "api-worker"
cmd = "node worker.js"
restart = "always"
进程监控
- 自动重启崩溃的进程
- 可配置重启策略(always/on-failure/never)
- 查看进程状态和日志输出
轻量级实现
Rust 编写的单一二进制文件,无需运行时依赖,启动迅速,内存占用极低。
跨平台支持
虽然进程管理在 Linux 上最为常见,pm3 也支持 macOS 和 Windows,方便开发环境统一。
快速开始
安装(需要 Rust 工具链):
cargo install pm3
创建配置文件 pm3.toml:
[[process]]
name = "dev-server"
cmd = "npm run dev"
restart = "always"
启动管理器:
pm3 start pm3.toml
对比同类产品
| 工具 | Stars | 特点 |
|---|---|---|
| PM2 | 43k | 功能全面,Node 生态首选 |
| supervisord | 8k | 成熟稳定,Python 项目常用 |
| pm3 | 162 | 极简配置,Rust 实现 |
pm3 不会取代 PM2 在生产环境的地位,但对于个人项目、开发环境或小型部署,它提供了恰到好处的功能集。
适用场景
- 本地开发时同时启动前端和后端服务
- 小型 VPS 上托管几个简单的后台任务
- 需要版本控制的进程配置(TOML 比 systemd unit 文件更易读)
- 跨平台团队统一开发环境
注意事项
- 项目较新(2026年1月创建),API 可能变化
- 生态尚不成熟,高级功能(如负载均衡、集群模式)缺失
- 生产环境使用前建议充分测试
总结
pm3 是一个”小而美”的进程管理器。它不试图解决所有问题,而是把简单的场景做到极致。如果你厌倦了臃肿的工具,想要一个配置文件就能搞定的方案,它值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/frectonz/pm3 |
| 许可证 | MIT |
| 语言 | Rust |
| 维护者 | @frectonz |