#!/bin/bash # Instalador automatizado DWService con cambio de usuario systemd # Compatible con Ubuntu/Debian/CentOS # ===== CONFIGURACIÓN ===== DW_USER="fourier" # Cambia por el usuario que quieras usar INSTALL_DIR="/usr/share/dwagent" SERVICE_FILE="/etc/systemd/system/dwagent.service" # ===== VALIDAR PARÁMETRO ===== INSTALL_CODE="$1" if [ -z "$INSTALL_CODE" ]; then echo "❌ Error: Debes especificar el código de instalación." echo "Uso: sudo $0 " exit 1 fi echo "===> Código de instalación: $INSTALL_CODE" # ===== FUNCIONES ===== set -e echo "===> Verificando que el usuario $DW_USER existe..." if ! id "$DW_USER" &>/dev/null; then echo "El usuario $DW_USER no existe. Creándolo..." sudo useradd -m -s /bin/bash "$DW_USER" fi echo "===> Descargando e instalando DWAgent..." cd /tmp wget -N https://www.dwservice.net/download/dwagent.sh chmod +x dwagent.sh echo "===> Instalando DWAgent de forma interactiva automática..." sudo bash -c "bash ./dwagent.sh < Corrigiendo permisos del directorio $INSTALL_DIR..." sudo chown -R "$DW_USER":"$DW_USER" "$INSTALL_DIR" sudo chmod +x "$INSTALL_DIR/native/dwagsvc" echo "===> Verificando servicio systemd..." if [ ! -f "$SERVICE_FILE" ]; then echo "No se encontró el archivo $SERVICE_FILE. Abortando." exit 1 fi echo "===> Creando override systemd para ejecutar como $DW_USER..." sudo mkdir -p /etc/systemd/system/dwagent.service.d sudo tee /etc/systemd/system/dwagent.service.d/override.conf >/dev/null < Recargando systemd y reiniciando el servicio..." sudo systemctl daemon-reload sudo systemctl enable dwagent sudo systemctl restart dwagent sleep 3 sudo systemctl status dwagent --no-pager echo "===> Instalación completada." echo "El servicio DWAgent ahora corre bajo el usuario: $DW_USER"