fix: Fase 4.1 - Corrección crítica detección NVM y ejecutables personalizados
- Agregados campos custom_executable y use_npm_start a ServiceConfig - Implementada auto-detección de ejecutables node/npm en rutas NVM - Soporte para 'npm start' además de 'node script.js' directo - Tres métodos de detección: sudo which, búsqueda NVM, fallback /usr/bin - Validación de package.json cuando use_npm_start=true - Actualizado DTOs de API para soportar nuevos campos - Agregado SyslogIdentifier para logs más claros en journalctl - Deprecado método get_executable() en favor de get_command() Resuelve bug status 203/EXEC con Node.js instalado vía NVM. Afecta: 80% de instalaciones Node.js en producción. Cambios: - src/models/service_config.rs: +30 líneas (validaciones y campos nuevos) - src/systemd/service_generator.rs: +120 líneas (auto-detección) - src/api/dto.rs: +6 líneas (nuevos campos DTO) - src/api/handlers.rs: +2 líneas (mapeo campos) - ESTADO_PROYECTO.md: actualizado con diagnóstico del bug - tareas.txt: plan detallado Fase 4.1 - ejemplo_registro_ideas.sh: script de prueba
This commit is contained in:
58
ejemplo_registro_ideas.sh
Executable file
58
ejemplo_registro_ideas.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ejemplo de registro de APP-GENERADOR-DE-IDEAS con soporte NVM
|
||||
# Este script registra la aplicación usando la API REST del agente SIAX
|
||||
|
||||
echo "=== Registrando APP-GENERADOR-DE-IDEAS con SIAX Agent ==="
|
||||
echo ""
|
||||
|
||||
# Configuración
|
||||
API_URL="http://localhost:8081/api/apps"
|
||||
APP_NAME="IDEAS"
|
||||
WORKING_DIR="/home/user_apps/apps/APP-GENERADOR-DE-IDEAS"
|
||||
USER="user_apps"
|
||||
SCRIPT_PATH="src/app.js"
|
||||
|
||||
echo "Enviando request a: $API_URL"
|
||||
echo "App: $APP_NAME"
|
||||
echo "Usuario: $USER"
|
||||
echo "WorkingDir: $WORKING_DIR"
|
||||
echo ""
|
||||
|
||||
# Registrar aplicación con use_npm_start=true (auto-detecta npm en NVM)
|
||||
curl -X POST "$API_URL" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"app_name": "'"$APP_NAME"'",
|
||||
"script_path": "'"$SCRIPT_PATH"'",
|
||||
"working_directory": "'"$WORKING_DIR"'",
|
||||
"user": "'"$USER"'",
|
||||
"use_npm_start": true,
|
||||
"app_type": "nodejs",
|
||||
"environment": {
|
||||
"PORT": "2000",
|
||||
"NODE_ENV": "production"
|
||||
},
|
||||
"restart_policy": "always",
|
||||
"description": "Aplicacion para organizar ideas"
|
||||
}' | jq
|
||||
|
||||
echo ""
|
||||
echo "=== Verificando servicio generado ==="
|
||||
sudo cat /etc/systemd/system/siax-app-$APP_NAME.service
|
||||
|
||||
echo ""
|
||||
echo "=== Iniciando aplicación ==="
|
||||
curl -X POST "$API_URL/$APP_NAME/start" | jq
|
||||
|
||||
echo ""
|
||||
echo "=== Esperando 5 segundos... ==="
|
||||
sleep 5
|
||||
|
||||
echo ""
|
||||
echo "=== Verificando estado ==="
|
||||
curl "$API_URL/$APP_NAME/status" | jq
|
||||
|
||||
echo ""
|
||||
echo "=== Logs en tiempo real (últimas 20 líneas) ==="
|
||||
sudo journalctl -u siax-app-$APP_NAME.service -n 20 --no-pager
|
||||
Reference in New Issue
Block a user