collabrix/install-service.sh
DGSoft b10078dc2e Add Systemd Service for Persistent Background Services
- teamchat.service: Systemd service configuration
- install-service.sh: Automated service installer
- SYSTEMD_INSTALL_README.md: Complete installation guide
- Automatic start on boot with failure recovery
- Proper logging to systemd journal
- Root user configuration (can be customized)
- Troubleshooting and management commands
2025-12-09 22:33:17 +01:00

91 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Team Chat System - Systemd Service Installer
# Installiert den Team Chat als Systemd-Service für automatischen Start
set -e
SERVICE_NAME="teamchat"
SERVICE_FILE="/home/OfficeDesk/teamchat.service"
SYSTEMD_PATH="/etc/systemd/system/${SERVICE_NAME}.service"
# Farben
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] $1${NC}"
}
error() {
echo -e "${RED}[ERROR] $1${NC}" >&2
}
warning() {
echo -e "${YELLOW}[WARNING] $1${NC}"
}
info() {
echo -e "${BLUE}[INFO] $1${NC}"
}
# Prüfe Root-Rechte
if [[ $EUID -ne 0 ]]; then
error "Dieses Script muss als root ausgeführt werden!"
echo "Verwendung: sudo $0"
exit 1
fi
log "Installiere Team Chat System als Systemd-Service..."
# Kopiere Service-Datei
log "Kopiere Service-Datei nach $SYSTEMD_PATH"
cp "$SERVICE_FILE" "$SYSTEMD_PATH"
# Setze korrekte Berechtigungen
chmod 644 "$SYSTEMD_PATH"
# Systemd neu laden
log "Lade Systemd-Konfiguration neu..."
systemctl daemon-reload
# Service aktivieren
log "Aktiviere Service für automatischen Start beim Boot..."
systemctl enable "$SERVICE_NAME"
# Service starten
log "Starte Team Chat Service..."
systemctl start "$SERVICE_NAME"
# Warte kurz
sleep 3
# Status prüfen
log "Prüfe Service-Status..."
if systemctl is-active --quiet "$SERVICE_NAME"; then
log "✅ Service erfolgreich gestartet!"
echo ""
echo "=== Service Status ==="
systemctl status "$SERVICE_NAME" --no-pager -l
echo ""
echo "=== Nützliche Commands ==="
echo "Status prüfen: systemctl status $SERVICE_NAME"
echo "Service stoppen: systemctl stop $SERVICE_NAME"
echo "Service starten: systemctl start $SERVICE_NAME"
echo "Logs anzeigen: journalctl -u $SERVICE_NAME -f"
echo "Service deaktivieren: systemctl disable $SERVICE_NAME"
echo ""
info "Der Service startet jetzt automatisch beim System-Boot!"
else
error "Service konnte nicht gestartet werden!"
echo ""
echo "=== Debug Informationen ==="
systemctl status "$SERVICE_NAME" --no-pager -l
echo ""
echo "=== Logs ==="
journalctl -u "$SERVICE_NAME" --no-pager -n 20
exit 1
fi