Configuración y Ejecución de JsN
Ejecución
JsN.exe <ruta_al_config.json>
Ejemplos:
JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json
Formato de configuración JSON
{
"scriptfile": "./my_script.js",
"arg": {
"key1": "value1",
"key2": 42,
"key3": true,
"nested": {
"sub": "value"
}
}
}
| Campo | Tipo | Descripción |
|---|---|---|
scriptfile |
string | Ruta al archivo JS (relativa a la carpeta de configuración o absoluta) |
arg |
object | Datos arbitrarios disponibles en el script como arg |
Acceso a arg en un script
Todo el contenido de "arg" se pasa a JS como un objeto global arg:
Configuración:
{
"scriptfile": "./run.js",
"arg": {
"host": "smtp.office365.com",
"port": 587,
"recipients": ["admin@example.com", "ops@example.com"],
"debug": false
}
}
Script run.js:
console.log(arg.host); // "smtp.office365.com"
console.log(arg.port); // 587
console.log(arg.recipients[0]); // "admin@example.com"
console.log(arg.debug); // false
Rutas en scriptfile
La ruta en scriptfile puede ser:
| Formato | Ejemplo | Comportamiento |
|---|---|---|
| Relativa | "./script.js" |
Relativa a la carpeta de configuración |
| Absoluta | "C:\\scripts\\run.js" |
Ruta absoluta |
Recomendación: Mantén la configuración y el script en la misma carpeta y usa
"./script.js".
Estructura del proyecto
Organización de archivos recomendada:
mi-proyecto/
├── config.json ← configuración (se pasa a JsN.exe)
├── script.js ← script principal
└── lib/
└── helpers.js ← funciones auxiliares (si son necesarias)
Múltiples configuraciones para diferentes tareas
Puedes tener múltiples configuraciones para un mismo script con diferentes parámetros:
monitor/
├── monitor.js ← script compartido
├── monitor-production.json ← configuración para producción
└── monitor-staging.json ← configuración para staging
monitor-production.json:
{
"scriptfile": "./monitor.js",
"arg": {
"service": "MyApp_Production",
"process": "myapp.exe",
"notify_url": "https://hooks.slack.com/services/PROD/..."
}
}
monitor-staging.json:
{
"scriptfile": "./monitor.js",
"arg": {
"service": "MyApp_Staging",
"process": "myapp.exe",
"notify_url": "https://hooks.slack.com/services/STAG/..."
}
}
Ejecución programada (Programador de tareas)
Para ejecución periódica usa el Programador de tareas de Windows:
- Abre el Programador de tareas (
taskschd.msc) - Crear tarea → Acciones → Nueva
- Programa:
C:\tools\JsN\JsN.exe - Argumentos:
C:\scripts\monitor\config.json - Configurar el desencadenador (cada N minutos, al inicio, etc.)
O vía PowerShell:
$action = New-ScheduledTaskAction `
-Execute "C:\tools\JsN\JsN.exe" `
-Argument "C:\scripts\monitor\config.json"
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -Once -At (Get-Date)
Register-ScheduledTask -TaskName "JsN-Monitor" -Action $action -Trigger $trigger -RunLevel Highest
Ejecución como administrador
Las funciones svc_* requieren privilegios de administrador. Formas de ejecutar:
Vía acceso directo: Clic derecho → Ejecutar como administrador.
Vía Programador de tareas: Al crear la tarea → Ejecutar con los privilegios más altos.
Vía PowerShell:
Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs
Códigos de salida de JsN.exe
| Código | Significado |
|---|---|
0 |
Script ejecutado con éxito |
1 |
Error al cargar la configuración o el archivo JS |