Refactor PM2 instance management in deployment script and enhance configuration for multiple instances
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 43s

This commit introduces a new function to streamline the process of starting and restarting PM2 instances, improving error handling and logging. It also updates the harheimertc.config.cjs file to utilize a helper function for environment variable management, allowing for better organization and support for multiple instances. The deployment script now checks the status of both PM2 instances, providing clearer feedback on their operational state, which enhances overall deployment reliability.
This commit is contained in:
Torsten Schulz (local)
2026-01-17 18:46:15 +01:00
parent ee6b031c7b
commit 5cf12d1838
2 changed files with 127 additions and 68 deletions

View File

@@ -357,34 +357,67 @@ if ! command -v pm2 &> /dev/null; then
exit 1
fi
# Prüfe, ob der Prozess existiert
if ! pm2 describe harheimertc &> /dev/null; then
echo "WARNING: PM2-Prozess 'harheimertc' existiert nicht."
echo "Versuche, den Prozess zu starten..."
pm2 start harheimertc.config.cjs --update-env || pm2 start harheimertc.simple.cjs --update-env || {
echo "ERROR: Konnte PM2-Prozess nicht starten."
echo "Bitte manuell starten: pm2 start harheimertc.config.cjs"
exit 1
}
echo " ✓ PM2-Prozess gestartet"
else
# Restart mit --update-env, um Umgebungsvariablen zu aktualisieren
echo " Restarting harheimertc with --update-env..."
if pm2 restart harheimertc --update-env; then
echo " ✓ PM2-Prozess neu gestartet"
# Funktion zum Starten/Neustarten einer PM2-Instanz
restart_pm2_instance() {
local instance_name=$1
if ! pm2 describe "$instance_name" &> /dev/null; then
echo " WARNING: PM2-Prozess '$instance_name' existiert nicht."
echo " Versuche, den Prozess zu starten..."
if pm2 start harheimertc.config.cjs --only "$instance_name" --update-env; then
echo " ✓ PM2-Prozess '$instance_name' gestartet"
return 0
else
echo " ERROR: Konnte PM2-Prozess '$instance_name' nicht starten."
return 1
fi
else
echo "ERROR: PM2-Restart fehlgeschlagen!"
echo "Bitte manuell prüfen: pm2 logs harheimertc"
exit 1
echo " Restarting $instance_name with --update-env..."
if pm2 restart "$instance_name" --update-env; then
echo " ✓ PM2-Prozess '$instance_name' neu gestartet"
return 0
else
echo " ERROR: PM2-Restart für '$instance_name' fehlgeschlagen!"
return 1
fi
fi
}
# Starte/Neustarte beide Instanzen
INSTANCE_ERRORS=0
if ! restart_pm2_instance "harheimertc"; then
INSTANCE_ERRORS=$((INSTANCE_ERRORS + 1))
fi
# Prüfe, ob der Prozess läuft
if ! restart_pm2_instance "harheimertc-3102"; then
INSTANCE_ERRORS=$((INSTANCE_ERRORS + 1))
fi
# Prüfe, ob beide Prozesse laufen
sleep 2
echo ""
echo " Checking PM2 instances status..."
if pm2 describe harheimertc | grep -q "online"; then
echo " ✓ PM2-Prozess läuft (online)"
echo " ✓ PM2-Prozess 'harheimertc' läuft (online)"
else
echo "WARNING: PM2-Prozess ist nicht online. Prüfe Logs: pm2 logs harheimertc"
echo " WARNING: PM2-Prozess 'harheimertc' ist nicht online. Prüfe Logs: pm2 logs harheimertc"
INSTANCE_ERRORS=$((INSTANCE_ERRORS + 1))
fi
if pm2 describe harheimertc-3102 | grep -q "online"; then
echo " ✓ PM2-Prozess 'harheimertc-3102' läuft (online)"
else
echo " WARNING: PM2-Prozess 'harheimertc-3102' ist nicht online. Prüfe Logs: pm2 logs harheimertc-3102"
INSTANCE_ERRORS=$((INSTANCE_ERRORS + 1))
fi
if [ "$INSTANCE_ERRORS" -gt 0 ]; then
echo ""
echo "WARNING: Einige PM2-Instanzen haben Probleme. Bitte manuell prüfen:"
echo " pm2 status"
echo " pm2 logs harheimertc"
echo " pm2 logs harheimertc-3102"
fi
echo ""
@@ -392,7 +425,10 @@ echo "=== Deployment completed successfully! ==="
echo "The application is now running with the latest code and your production data preserved."
echo ""
echo "Useful commands:"
echo " pm2 logs harheimertc # View logs"
echo " pm2 logs harheimertc # View logs (Port 3100)"
echo " pm2 logs harheimertc-3102 # View logs (Port 3102)"
echo " pm2 status # View status"
echo " pm2 restart harheimertc # Restart manually"
echo " pm2 restart harheimertc # Restart instance on port 3100"
echo " pm2 restart harheimertc-3102 # Restart instance on port 3102"
echo " pm2 restart all # Restart all instances"