Heim >Web-Frontend >js-Tutorial >Einrichten des PMor-Mehrbenutzerzugriffs auf der Ubuntu-Instanz

Einrichten des PMor-Mehrbenutzerzugriffs auf der Ubuntu-Instanz

王林
王林Original
2024-08-28 06:06:05650Durchsuche

Setting Up PMor Multi-User Access on Ubuntu Instance

Für die Verwaltung von Node.js-Anwendungen auf einem Produktionsserver ist häufig ein Prozessmanager erforderlich, der dafür sorgt, dass Ihre Anwendungen reibungslos laufen und nach Abstürzen automatisch wiederhergestellt werden. PM2 ist einer der beliebtesten Prozessmanager für Node.js und bietet leistungsstarke Funktionen wie Prozessüberwachung, Protokollverwaltung und Cluster-Modus.

Wenn Sie eine Anwendung auf einer Google Cloud Ubuntu-Instanz ausführen, kann es vorkommen, dass PM2-Prozesse nur für den Benutzer sichtbar sind, der sie gestartet hat. Dies kann problematisch sein, wenn Ihr Server über mehrere Benutzer verfügt, z. B. Entwickler, Systemadministratoren oder automatisierte Bereitstellungsskripts. In diesem Blogbeitrag gehen wir die Schritte durch, um PM2 als systemweiten Dienst zu konfigurieren und ihn allen Benutzern auf dem Server zugänglich zu machen.

Warum PM2 als systemweiten Dienst konfigurieren?

Standardmäßig wird PM2 als Prozess unter dem Benutzer ausgeführt, der es gestartet hat. Das heißt, wenn Sie als einzelner Benutzer eine SSH-Verbindung zu Ihrem Server herstellen und einen PM2-Prozess starten, ist dieser Prozess für einen anderen Benutzer, der sich über SSH anmeldet, nicht sichtbar. Um dieses Problem zu beheben, können wir PM2 so konfigurieren, dass es als Dienst auf Systemebene ausgeführt wird. Dieser Ansatz hat mehrere Vorteile:

  • Prozesssichtbarkeit: Alle Benutzer auf dem Server können PM2-Prozesse anzeigen und verwalten.
  • Automatischer Start: PM2 startet automatisch beim Systemstart und stellt so sicher, dass Ihre Anwendungen immer ausgeführt werden.
  • Zentralisierte Verwaltung: Protokolle und Prozesszustände werden zentralisiert, was die Verwaltung Ihrer Anwendungen erleichtert.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  1. Eine Google Cloud Ubuntu-Instanz.
  2. Node.js und npm auf der Instanz installiert.
  3. PM2 global installiert.

Schritt 1: PM2 global installieren

Um sicherzustellen, dass alle Benutzer auf PM2 zugreifen können, sollte es global installiert werden. Sie können PM2 global mit npm:
installieren

sudo npm install -g pm2

Dieser Befehl installiert PM2 im globalen npm-Verzeichnis und macht es systemweit verfügbar.

Schritt 2: Richten Sie PM2 als systemweiten Dienst ein

Als nächstes müssen wir PM2 so einrichten, dass es als Dienst ausgeführt wird. Dadurch kann PM2 Prozesse auf Systemebene verwalten, anstatt an eine bestimmte Benutzersitzung gebunden zu sein.

Führen Sie den folgenden Befehl aus, um das erforderliche Startskript für PM2 zu generieren:

pm2 startup

Dieser Befehl erkennt das von Ihrer Ubuntu-Instanz verwendete Init-System (normalerweise systemd) und stellt einen Befehl bereit, der mit sudo ausgeführt werden muss, um PM2 als systemweiten Dienst zu konfigurieren. Die Ausgabe sieht etwa so aus:

[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>

Hier sollte durch den Benutzernamen des Benutzers ersetzt werden, der PM2 ursprünglich eingerichtet hat. Dadurch wird sichergestellt, dass der PM2-Prozess mit dem Home-Verzeichnis des richtigen Benutzers verknüpft ist.

Schritt 3: Führen Sie den generierten Befehl aus

Kopieren Sie den in der Ausgabe des vorherigen Schritts bereitgestellten Befehl und führen Sie ihn aus. Zum Beispiel:

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

Dieser Befehl erstellt einen systemd-Dienst, der PM2 mit den richtigen Umgebungsvariablen und dem richtigen Benutzerkontext startet.

Schritt 4: Speichern Sie die PM2-Prozessliste

Wenn unter PM2 bereits Prozesse ausgeführt werden, die Sie über Neustarts hinweg beibehalten möchten, müssen Sie die aktuelle Prozessliste speichern. Dadurch wird eine Dump-Datei erstellt, die PM2 zum Wiederherstellen von Prozessen beim Systemstart verwendet:

pm2 save

Der Befehl „pm2 save“ speichert die aktuelle Liste der verwalteten Prozesse in einer JSON-Datei in ~/.pm2/dump.pm2. Diese Datei wird beim Start von PM2 automatisch geladen und stellt so sicher, dass Ihre Anwendungen nach einem Neustart wiederhergestellt werden.

Schritt 5: Aktivieren Sie den PM2-Dienst zum Starten beim Booten

Um sicherzustellen, dass PM2 beim Systemstart automatisch startet, müssen Sie den Dienst aktivieren:

sudo systemctl enable pm2-johndoe

Ersetzen Sie johndoe durch den entsprechenden Benutzernamen. Dieser Befehl aktiviert den PM2-Dienst und stellt sicher, dass er bei jedem Systemstart gestartet wird.

Schritt 6: Zugriff auf PM2 mit einem beliebigen Benutzer

Da PM2 nun als systemweiter Dienst konfiguriert ist, sollte es für jeden Benutzer auf dem Server zugänglich sein. Um den Status der Prozesse zu überprüfen oder aufzulisten, kann jeder Benutzer Folgendes ausführen:

pm2 list

Dieser Befehl zeigt die Liste der vom systemweiten PM2-Dienst verwalteten Prozesse an, unabhängig davon, welcher Benutzer angemeldet ist.

Schritt 7: Zusätzliche Konfiguration für freigegebene Protokolle (optional)

Wenn Sie möchten, dass mehrere Benutzer auf PM2-Protokolle zugreifen können, müssen Sie möglicherweise die Dateiberechtigungen anpassen oder PM2 so konfigurieren, dass Protokolle in einem freigegebenen Verzeichnis gespeichert werden. Dadurch wird sichergestellt, dass alle Benutzer Protokolle für die unter PM2 ausgeführten Prozesse anzeigen und verwalten können.

Um das Protokolldateiverzeichnis zu ändern, können Sie die folgende Umgebungsvariable verwenden:

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!

Das obige ist der detaillierte Inhalt vonEinrichten des PMor-Mehrbenutzerzugriffs auf der Ubuntu-Instanz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn