# Services überprüfen und verwalten ## Backend-Service Status prüfen Das Deploy-Script verwendet **PM2** als Standard. Hier die Befehle: ### Mit PM2 (Standard) ```bash # Status anzeigen pm2 status # Detaillierte Info pm2 info timeclock-backend # Ist der Service laufend? pm2 list | grep timeclock-backend # Logs ansehen pm2 logs timeclock-backend # Letzten 50 Zeilen pm2 logs timeclock-backend --lines 50 ``` ### Backend manuell starten (falls nicht laufend) ```bash cd /var/www/timeclock/backend pm2 start src/index.js --name timeclock-backend --env production pm2 save ``` ### Mit systemd (falls PM2 nicht verwendet) ```bash # Status prüfen sudo systemctl status timeclock # Ist der Service aktiv? systemctl is-active timeclock # Logs ansehen sudo journalctl -u timeclock -f ``` --- ## Alle Services überprüfen ### Kompletter Status-Check ```bash # Backend (PM2) echo "=== Backend (PM2) ===" pm2 status # Apache2 echo "" echo "=== Apache2 ===" sudo systemctl status apache2 --no-pager | head -n 15 # Backend-Health-Check echo "" echo "=== Backend Health-Check ===" curl -s http://localhost:3010/api/health | jq || curl http://localhost:3010/api/health # Frontend erreichbar? echo "" echo "=== Frontend Check ===" curl -I https://stechuhr3.tsschulz.de 2>/dev/null | head -n 5 ``` ### Oder mit dem Deploy-Script ```bash cd /var/www/timeclock ./deploy.sh status ``` --- ## Backend neu starten ### Mit PM2 ```bash # Neustart pm2 restart timeclock-backend # Stoppen pm2 stop timeclock-backend # Starten pm2 start timeclock-backend # Löschen und neu starten pm2 delete timeclock-backend cd /var/www/timeclock/backend pm2 start src/index.js --name timeclock-backend --env production pm2 save ``` ### Mit systemd ```bash sudo systemctl restart timeclock sudo systemctl stop timeclock sudo systemctl start timeclock ``` --- ## Troubleshooting ### Backend läuft nicht 1. **Prüfe Logs:** ```bash pm2 logs timeclock-backend --err ``` 2. **Prüfe .env Datei:** ```bash cat /var/www/timeclock/backend/.env ``` 3. **Prüfe Port-Belegung:** ```bash sudo netstat -tulpn | grep 3010 # oder sudo lsof -i :3010 ``` 4. **Prüfe Datenbank-Verbindung:** ```bash mysql -h tsschulz.de -u stechuhr2 -p stechuhr2 -e "SHOW TABLES;" ``` 5. **Manuell starten (Debug):** ```bash cd /var/www/timeclock/backend node src/index.js # Siehst du Fehler? ``` ### Backend startet, aber API antwortet nicht 1. **Health-Check direkt:** ```bash curl http://localhost:3010/api/health ``` 2. **Apache Proxy prüfen:** ```bash # Ist Proxy-Modul aktiv? apache2ctl -M | grep proxy # Apache Error-Log sudo tail -f /var/log/apache2/stechuhr3-error.log ``` 3. **Firewall prüfen:** ```bash sudo ufw status ``` --- ## Monitoring einrichten ### PM2 Monitoring ```bash # Real-time Monitoring pm2 monit # Web-Dashboard (PM2 Plus) pm2 plus ``` ### Automatischer Neustart bei Absturz PM2 startet automatisch neu. Konfiguration: ```bash pm2 startup systemd # Führe den angezeigten Befehl aus pm2 save ``` ### Health-Check Cronjob Siehe `scripts/health-check.sh` für automatisches Monitoring! --- ## Schnell-Befehle ```bash # Alles prüfen ./deploy.sh status # Logs live ansehen ./deploy.sh logs # Backend neu starten pm2 restart timeclock-backend # Apache neu starten sudo systemctl restart apache2 ```