dwscript.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # Instalador automatizado DWService con cambio de usuario systemd
  3. # Compatible con Ubuntu/Debian/CentOS
  4. # ===== CONFIGURACIÓN =====
  5. DW_USER="fourier" # Cambia por el usuario que quieras usar
  6. INSTALL_DIR="/usr/share/dwagent"
  7. SERVICE_FILE="/etc/systemd/system/dwagent.service"
  8. # ===== FUNCIONES =====
  9. set -e
  10. echo "===> Verificando que el usuario $DW_USER existe..."
  11. if ! id "$DW_USER" &>/dev/null; then
  12. echo "El usuario $DW_USER no existe. Creándolo..."
  13. sudo useradd -m -s /bin/bash "$DW_USER"
  14. fi
  15. echo "===> Descargando e instalando DWAgent..."
  16. cd /tmp
  17. wget -N https://www.dwservice.net/download/dwagent.sh
  18. chmod +x dwagent.sh
  19. sudo ./dwagent.sh -silent || {
  20. echo "Error durante la instalación del agente."
  21. exit 1
  22. }
  23. echo "===> Corrigiendo permisos del directorio $INSTALL_DIR..."
  24. sudo chown -R "$DW_USER":"$DW_USER" "$INSTALL_DIR"
  25. sudo chmod +x "$INSTALL_DIR/native/dwagsvc"
  26. echo "===> Verificando servicio systemd..."
  27. if [ ! -f "$SERVICE_FILE" ]; then
  28. echo "No se encontró el archivo $SERVICE_FILE. Abortando."
  29. exit 1
  30. fi
  31. echo "===> Creando override systemd para ejecutar como $DW_USER..."
  32. sudo mkdir -p /etc/systemd/system/dwagent.service.d
  33. sudo tee /etc/systemd/system/dwagent.service.d/override.conf >/dev/null <<EOF
  34. [Service]
  35. User=$DW_USER
  36. EOF
  37. echo "===> Recargando systemd y reiniciando el servicio..."
  38. sudo systemctl daemon-reload
  39. sudo systemctl enable dwagent
  40. sudo systemctl restart dwagent
  41. sleep 3
  42. sudo systemctl status dwagent --no-pager
  43. echo "===> Instalación completada."
  44. echo "El servicio DWAgent ahora corre bajo el usuario: $DW_USER"