Configurazione ed Esecuzione di JsN
Esecuzione
JsN.exe <percorso_del_config.json>
Esempi:
JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json
Formato JSON della configurazione
{
"scriptfile": "./my_script.js",
"arg": {
"key1": "value1",
"key2": 42,
"key3": true,
"nested": {
"sub": "value"
}
}
}
| Campo | Tipo | Descrizione |
|---|---|---|
scriptfile |
stringa | Percorso del file JS (relativo alla cartella di configurazione o assoluto) |
arg |
oggetto | Dati arbitrari disponibili nello script come arg |
Accesso a arg in uno script
Tutto il contenuto di "arg" viene passato in JS come oggetto globale arg:
Configurazione:
{
"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
Percorsi in scriptfile
Il percorso in scriptfile può essere:
| Formato | Esempio | Comportamento |
|---|---|---|
| Relativo | "./script.js" |
Relativo alla cartella di configurazione |
| Assoluto | "C:\\scripts\\run.js" |
Percorso assoluto |
Raccomandazione: Mantieni la configurazione e lo script nella stessa cartella e usa
"./script.js".
Struttura del progetto
Organizzazione consigliata dei file:
my-project/
├── config.json ← configurazione (passata a JsN.exe)
├── script.js ← script principale
└── lib/
└── helpers.js ← funzioni di supporto (se necessarie)
Configurazioni multiple per task diversi
Puoi avere più configurazioni per uno script con parametri diversi:
monitor/
├── monitor.js ← script condiviso
├── monitor-production.json ← configurazione per produzione
└── monitor-staging.json ← configurazione per 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/..."
}
}
Esecuzione pianificata (Utilità di pianificazione)
Per l'esecuzione periodica usa l'Utilità di pianificazione di Windows:
- Apri Utilità di pianificazione (
taskschd.msc) - Crea un'attività → Azioni → Nuova
- Programma:
C:\tools\JsN\JsN.exe - Argomenti:
C:\scripts\monitor\config.json - Configura il trigger (ogni N minuti, all'avvio, ecc.)
Oppure via 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
Esecuzione come amministratore
Le funzioni svc_* richiedono privilegi di amministratore. Modi per eseguire:
Tramite collegamento: Tasto destro → Esegui come amministratore.
Tramite Utilità di pianificazione: Durante la creazione dell'attività → Esegui con i privilegi più elevati.
Tramite PowerShell:
Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs
Codici di uscita di JsN.exe
| Codice | Significato |
|---|---|
0 |
Script eseguito con successo |
1 |
Impossibile caricare il file di configurazione o JS |