„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Einrichten des PMor-Mehrbenutzerzugriffs auf der Ubuntu-Instanz

Einrichten des PMor-Mehrbenutzerzugriffs auf der Ubuntu-Instanz

Veröffentlicht am 28.08.2024
Durchsuche:696

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 mehrere Benutzer hat, 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  --hp /home/

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

Legen Sie dies in einer globalen Konfigurationsdatei wie /etc/environment fest, um es über Sitzungen hinweg persistent zu machen.

Schritt 8: PM2-Prozesse benutzerübergreifend verwalten

Sobald PM2 als Dienst eingerichtet ist, können Benutzer Prozesse mit Standard-PM2-Befehlen verwalten. Abhängig von den Berechtigungen und Benutzerrollen erfordern einige Befehle jedoch möglicherweise Sudo-Zugriff. Zum Beispiel:

sudo pm2 list

Dieser Befehl listet die vom systemweiten PM2-Dienst verwalteten Prozesse auf und erleichtert so Administratoren und Entwicklern die Zusammenarbeit bei der Serververwaltung.

Abschluss

Das Einrichten von PM2 als systemweiter Dienst auf Ihrer Ubuntu-Instanz stellt sicher, dass Ihre Node.js-Anwendungen robust verwaltet werden und für alle Benutzer auf dem Server zugänglich sind. Dieses Setup ist besonders nützlich in Umgebungen mit mehreren Benutzern oder automatisierten Bereitstellungsprozessen und bietet eine zuverlässige und zentralisierte Möglichkeit, Anwendungen zu verwalten.

Indem Sie die in dieser Anleitung beschriebenen Schritte befolgen, können Sie sicherstellen, dass PM2 allen Benutzern zur Verfügung steht, Ihre Prozesse nach Systemneustarts automatisch neu gestartet werden und Protokolle leicht zugänglich sind. Dies vereinfacht nicht nur die Serververwaltung, sondern erhöht auch die Zuverlässigkeit Ihrer Anwendungen in der Produktion.

Viel Spaß beim Codieren!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/manojspace/setting-up-pm2-for-multi-user-access-on-ubuntu-instance-5g95?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3