Konfiguracja i uruchamianie JsN


Uruchamianie

JsN.exe <ścieżka_do_config.json>

Przykłady:

JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json

Format konfiguracji JSON

{
  "scriptfile": "./mój_skrypt.js",
  "arg": {
    "klucz1": "wartość1",
    "klucz2": 42,
    "klucz3": true,
    "zagnieżdżony": {
      "pod": "wartość"
    }
  }
}
Pole Typ Opis
scriptfile string Ścieżka do pliku JS (względna do folderu konfiguracji lub bezwzględna)
arg object Dowolne dane dostępne w skrypcie jako arg

Dostęp do arg w skrypcie

Cała zawartość "arg" jest przekazywana do JS jako globalny obiekt arg:

Konfiguracja:

{
  "scriptfile": "./uruchom.js",
  "arg": {
    "host": "smtp.office365.com",
    "port": 587,
    "recipients": ["admin@example.com", "ops@example.com"],
    "debug": false
  }
}

Skrypt uruchom.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

Ścieżki w scriptfile

Ścieżka w scriptfile może być:

Format Przykład Zachowanie
Względna "./skrypt.js" Względna do folderu konfiguracji
Bezwzględna "C:\\scripts\\uruchom.js" Ścieżka bezwzględna

Rekomendacja: Przechowuj konfigurację i skrypt w tym samym folderze i używaj "./skrypt.js".


Struktura projektu

Rekomendowana organizacja plików:

mój-projekt/
├── config.json        ← konfiguracja (przekazywana do JsN.exe)
├── skrypt.js          ← główny skrypt
└── lib/
    └── helpers.js     ← funkcje pomocnicze (jeśli potrzebne)

Wiele konfiguracji dla różnych zadań

Możesz mieć wiele konfiguracji dla jednego skryptu z różnymi parametrami:

monitor/
├── monitor.js                  ← wspólny skrypt
├── monitor-production.json     ← konfiguracja dla produkcji
└── monitor-staging.json        ← konfiguracja dla środowiska testowego

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/..."
  }
}

Zaplanowane wykonanie (Harmonogram zadań)

Do okresowego wykonywania użyj Harmonogramu zadań Windows:

  1. Otwórz Harmonogram zadań (taskschd.msc)
  2. Utwórz zadanie → Akcje → Nowa
  3. Program: C:\tools\JsN\JsN.exe
  4. Argumenty: C:\scripts\monitor\config.json
  5. Skonfiguruj wyzwalacz (co N minut, przy starcie itp.)

Lub przez 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

Uruchamianie jako administrator

Funkcje svc_* wymagają uprawnień administratora. Sposoby uruchomienia:

Przez skrót: Kliknij prawym przyciskiem myszy → Uruchom jako administrator.

Przez Harmonogram zadań: Podczas tworzenia zadania → Uruchom z najwyższymi uprawnieniami.

Przez PowerShell:

Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs

Kody wyjścia JsN.exe

Kod Znaczenie
0 Skrypt wykonany pomyślnie
1 Nie udało się załadować konfiguracji lub pliku JS