コンテナ化と 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