PM2 ist ein Production Process Manager für Node.js-Anwendungen. Es bietet eine einfache und intuitive Möglichkeit, Node.js-Prozesse zu verwalten, zu überwachen und automatisch neu zu starten.
Was ist systemd?
systemd ist das Standard-Init-System moderner Linux-Distributionen. Es verwaltet alle Systemdienste und kann auch für Node.js-Anwendungen verwendet werden, erfordert aber mehr Konfiguration.
Warum PM2 verwenden?
Einfachheit: Keine komplexe Konfiguration nötig
Hot Reload: Zero-Downtime-Deployments
Monitoring: Eingebaute Überwachung und Logs
Cluster-Modus: Automatische Load-Balancing
Auto-Restart: Automatischer Neustart bei Fehlern
Installation von PM2
1
npm install -g pm2
PM2 - Grundlegende Bedienung
Anwendung starten
1 2 3 4 5 6 7 8
# Einfacher Start pm2 start app.js
# Mit Namen pm2 start app.js --name "meine-app"
# Mit Konfiguration pm2 start app.js --name "api" --instances 4
Anwendungen verwalten
1 2 3 4 5 6 7 8 9 10 11
# Status aller Prozesse pm2 status
# Prozess stoppen pm2 stop app-name
# Prozess neu starten pm2 restart app-name
# Prozess löschen pm2 delete app-name
Logs anzeigen
1 2 3 4 5 6 7 8
# Alle Logs pm2 logs
# Logs einer spezifischen App pm2 logs app-name
# Live-Logs verfolgen pm2 logs --lines 100
Erweiterte Funktionen
1 2 3 4 5 6 7 8
# Cluster-Modus (nutzt alle CPU-Kerne) pm2 start app.js -i max
# Zero-Downtime Reload pm2 reload app-name
# Monitoring pm2 monit
PM2 Startup - Automatischer Start nach Reboot
PM2 bietet eine einfache Möglichkeit, deine Node.js-Anwendungen automatisch nach einem Systemstart zu starten:
1 2
# PM2 Startup-Skript generieren pm2 startup
Dieser Befehl zeigt dir ein systemspezifisches Kommando an, das du als Root ausführen musst. Zum Beispiel:
# Starten mit Konfiguration pm2 start ecosystem.config.js --env production
Tipps
Nutze PM2 für Entwicklung und kleinere Deployments
Verwende systemd für große Produktionssysteme
PM2 kann mit systemd kombiniert werden: PM2 als systemd-Service
Beide Tools unterstützen Umgebungsvariablen und Logging
Fazit
PM2 bietet eine deutlich einfachere und entwicklerfreundlichere Lösung für Node.js-Anwendungen, während systemd mehr Kontrolle und Integration in Linux-Systeme bietet. Für die meisten Node.js-Projekte ist PM2 die bessere Wahl, besonders wenn schnelle Deployments und einfache Bedienung wichtig sind.