Repolode
Unitech

Unitech/pm2

Node.jsとBunのアプリを本番環境で運用するためのプロセスマネージャー。ロードバランサーを内蔵し、プロセスを維持しながらダウンタイムなしで再読み込みできます。

スター
43,311
フォーク
2,734
未解決の Issue
1,109
最終コミット
23 時間前

これは何?

PM2は、Node.jsとBunのアプリケーションを本番環境で実行するためのプロセスマネージャーです。プロセスを稼働状態に保ち、クラッシュ後に再起動します。また、PythonスクリプトやPATH上にあるバイナリなど、ほかのプログラムも起動・管理できます。

クラスターモードではNode.jsアプリケーションのインスタンスを複数起動し、HTTP、TCP、UDPのトラフィックを振り分けることで、アプリがすべてのCPUコアを利用できるようにします。reloadコマンドを使えば、稼働中のアプリケーションをダウンタイムなしで更新できます。PM2にはターミナルでのモニタリング、ログの閲覧とローテーション機能もあり、systemd、launchdなどのinitシステム向けに起動スクリプトを生成して、サーバー再起動後もプロセスを再起動できます。

専用のランタイムコマンドpm2-runtimeは、Dockerコンテナ内でアプリを実行するために設計されています。PM2はLinux、macOS、Windowsで動作し、Node.js 18以降とBun 1以降に対応しています。

主な機能

  • 01Node.js、Bun、Pythonなどのプロセスを稼働状態に保ち、障害後に再起動します。
  • 02クラスターモードで複数のインスタンスにHTTP、TCP、UDPのトラフィックを分散します。
  • 03稼働中のアプリケーションをダウンタイムなしで再読み込みします。
  • 04ターミナルでのモニタリングと、JSON形式および整形済み出力でのログの一元的な閲覧に対応します。
  • 05systemd、launchdなどのinitシステム向けに起動スクリプトを生成します。

ユースケース

  • 単一サーバーでNode.js APIを本番運用し、すべてのCPUコアを活用する。
  • pm2-runtimeコマンドを使ってDockerコンテナにアプリをデプロイする。
  • リリース時に接続を切断せず、稼働中のサービスを更新する。
  • サーバーの再起動後もバックグラウンドサービスを稼働させ続ける。

クイックスタート

  1. 1

    npmでPM2をグローバルにインストールする

    npm install pm2 -g
  2. 2

    PM2でアプリケーションを起動する

    pm2 start app.js
  3. 3

    実行中のアプリケーションを一覧表示する

    pm2 list

使う前に知っておきたいこと

  • AGPL 3.0(コピーレフトライセンス)の下でライセンスされています。他のライセンスについてはメンテナーにお問い合わせください。
  • Node.js 18以降またはBun 1以降が必要です。

トピック

よくある質問

pm2 とは?
Node.jsとBunのアプリを本番環境で運用するためのプロセスマネージャー。ロードバランサーを内蔵し、プロセスを維持しながらダウンタイムなしで再読み込みできます。 PM2は、Node.jsとBunのアプリケーションを本番環境で実行するためのプロセスマネージャーです。プロセスを稼働状態に保ち、クラッシュ後に再起動します。また、PythonスクリプトやPATH上にあるバイナリなど、ほかのプログラムも起動・管理できます。
pm2 は無料で使えますか?ライセンスは?
pm2 は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pm2 は今もメンテナンスされていますか?
活発にメンテナンス中。pm2 の最終コミットは 2026年10月21日 です。
pm2 は何に使えますか?
単一サーバーでNode.js APIを本番運用し、すべてのCPUコアを活用する。 pm2-runtimeコマンドを使ってDockerコンテナにアプリをデプロイする。 リリース時に接続を切断せず、稼働中のサービスを更新する。 サーバーの再起動後もバックグラウンドサービスを稼働させ続ける。
pm2 のインストール方法は?
npmでPM2をグローバルにインストールする: npm install pm2 -g PM2でアプリケーションを起動する: pm2 start app.js 実行中のアプリケーションを一覧表示する: pm2 list
pm2 はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Unitech/pm2

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト