ホームページ  >  記事  >  ウェブフロントエンド  >  Ubuntu インスタンスでの PMor マルチユーザー アクセスのセットアップ

Ubuntu インスタンスでの PMor マルチユーザー アクセスのセットアップ

王林
王林オリジナル
2024-08-28 06:06:05633ブラウズ

Setting Up PMor Multi-User Access on Ubuntu Instance

運用サーバーで Node.js アプリケーションを管理するには、多くの場合、アプリケーションがスムーズに実行され、クラッシュから自動的に回復するようにプロセス マネージャーが必要になります。 PM2 は Node.js の最も人気のあるプロセス マネージャーの 1 つであり、プロセス監視、ログ管理、クラスター モードなどの強力な機能を提供します。

Google Cloud Ubuntu インスタンスでアプリケーションを実行している場合、PM2 プロセスが開始したユーザーにのみ表示される状況が発生する可能性があります。これは、サーバーに開発者、システム管理者、自動展開スクリプトなどの複数のユーザーがいる場合に問題になる可能性があります。このブログ投稿では、PM2 をシステム全体のサービスとして構成し、サーバー上のすべてのユーザーがアクセスできるようにする手順を説明します。

PM2 をシステム全体のサービスとして構成する理由

デフォルトでは、PM2 はそれを開始したユーザーの下でプロセスとして実行されます。これは、1 人のユーザーとしてサーバーに SSH 接続して PM2 プロセスを開始した場合、そのプロセスは SSH 経由でログインする別のユーザーには表示されないことを意味します。これに対処するために、PM2 をシステム レベルでサービスとして実行するように構成できます。このアプローチにはいくつかの利点があります:

  • プロセスの可視性: サーバー上のすべてのユーザーが PM2 プロセスを表示および管理できます。
  • 自動起動: PM2 はシステム起動時に自動的に起動し、アプリケーションが常に実行されるようにします。
  • 集中管理: ログとプロセスの状態が集中化され、アプリケーションの管理が容易になります。

前提条件

始める前に、以下のものがあることを確認してください:

  1. Google Cloud Ubuntu インスタンス。
  2. Node.js と npm がインスタンスにインストールされています。
  3. PM2 は世界中にインストールされています。

ステップ 1: PM2 をグローバルにインストールする

すべてのユーザーが PM2 にアクセスできるようにするには、PM2 をグローバルにインストールする必要があります。 npm:
を使用して PM2 をグローバルにインストールできます。

sudo npm install -g pm2

このコマンドは、PM2 をグローバル npm ディレクトリにインストールし、システム全体で利用できるようにします。

ステップ 2: PM2 をシステム全体のサービスとして設定する

次に、PM2 をサービスとして実行するように設定する必要があります。これにより、PM2 は特定のユーザー セッションに関連付けられるのではなく、システム レベルでプロセスを管理できるようになります。

次のコマンドを実行して、PM2 に必要な起動スクリプトを生成します。

pm2 startup

このコマンドは、Ubuntu インスタンスで使用される init システム (通常は systemd) を検出し、PM2 をシステム全体のサービスとして構成するために sudo で実行する必要があるコマンドを提供します。出力は次のようになります:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u <username> --hp /home/<username>

ここでは、は、最初に PM2 をセットアップしたユーザーのユーザー名に置き換える必要があります。これにより、PM2 プロセスが正しいユーザーのホーム ディレクトリに確実にリンクされます。

ステップ 3: 生成されたコマンドを実行する

前のステップの出力で提供されたコマンドをコピーして実行します。例:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe

このコマンドは、正しい環境変数とユーザー コンテキストを使用して PM2 を開始する systemd サービスを作成します。

ステップ 4: PM2 プロセス リストを保存する

再起動後も保持したいプロセスが既に PM2 で実行されている場合は、現在のプロセス リストを保存する必要があります。これにより、PM2 がシステム起動時にプロセスを復元するために使用するダンプ ファイルが作成されます。

pm2 save

pm2 save コマンドは、管理対象プロセスの現在のリストを ~/.pm2/dump.pm2 の JSON ファイルに保存します。このファイルは PM2 の起動時に自動的にロードされ、再起動後にアプリケーションが確実に復活します。

ステップ 5: 起動時に PM2 サービスを開始できるようにする

システムの起動時に PM2 が自動的に開始されるようにするには、サービスを有効にする必要があります。

sudo systemctl enable pm2-johndoe

johndoe を適切なユーザー名に置き換えます。このコマンドは PM2 サービスを有効にし、システムが起動するたびにサービスが開始されるようにします。

ステップ 6: 任意のユーザーで PM2 にアクセスする

PM2 がシステム全体のサービスとして構成されたので、サーバー上のすべてのユーザーが PM2 にアクセスできるようになります。プロセスのステータスを確認したり、プロセスを一覧表示するには、どのユーザーも次を実行できます:

pm2 list

このコマンドは、どのユーザーがログインしているかに関係なく、システム全体の PM2 サービスによって管理されているプロセスのリストを表示します。

ステップ 7: 共有ログの追加構成 (オプション)

複数のユーザーが PM2 ログにアクセスできるようにする必要がある場合は、ファイルのアクセス許可を調整するか、ログを共有ディレクトリに保存するように PM2 を構成する必要がある場合があります。これにより、すべてのユーザーが PM2 で実行されているプロセスのログを表示および管理できるようになります。

ログ ファイル ディレクトリを変更するには、次の環境変数を使用できます:

export PM2_HOME=/path/to/shared/pm2/home

Set this in a global configuration file, like /etc/environment, to make it persistent across sessions.

Step 8: Managing PM2 Processes Across Users

Once PM2 is set up as a service, users can manage processes using standard PM2 commands. However, depending on the permissions and user roles, some commands might require sudo access. For example:

sudo pm2 list

This command will list the processes managed by the system-wide PM2 service, making it easier for administrators and developers to collaborate on server management.

Conclusion

Setting up PM2 as a system-wide service on your Ubuntu instance ensures that your Node.js applications are robustly managed and accessible to all users on the server. This setup is particularly useful in environments with multiple users or automated deployment processes, providing a reliable and centralized way to manage applications.

By following the steps outlined in this guide, you can ensure that PM2 is available to all users, your processes are automatically restarted after system reboots, and logs are easily accessible. This not only simplifies server management but also enhances the reliability of your applications in production.

Happy coding!

以上がUbuntu インスタンスでの PMor マルチユーザー アクセスのセットアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。