在容器化和 systemd 主导的时代,有时候你只需要一个简单的进程管理器来跑几个后台服务。pm3 就是这样一个工具——它用 Rust 编写,通过 TOML 配置文件管理进程,没有复杂的依赖,也没有陡峭的学习曲线。

项目概览

属性内容
GitHubfrectonz/pm3
Stars162
语言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特点
PM243k功能全面,Node 生态首选
supervisord8k成熟稳定,Python 项目常用
pm3162极简配置,Rust 实现

pm3 不会取代 PM2 在生产环境的地位,但对于个人项目、开发环境或小型部署,它提供了恰到好处的功能集。

适用场景

  • 本地开发时同时启动前端和后端服务
  • 小型 VPS 上托管几个简单的后台任务
  • 需要版本控制的进程配置(TOML 比 systemd unit 文件更易读)
  • 跨平台团队统一开发环境

注意事项

  • 项目较新(2026年1月创建),API 可能变化
  • 生态尚不成熟,高级功能(如负载均衡、集群模式)缺失
  • 生产环境使用前建议充分测试

总结

pm3 是一个”小而美”的进程管理器。它不试图解决所有问题,而是把简单的场景做到极致。如果你厌倦了臃肿的工具,想要一个配置文件就能搞定的方案,它值得一试。

属性内容
仓库https://github.com/frectonz/pm3
许可证MIT
语言Rust
维护者@frectonz