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:
- Otwórz Harmonogram zadań (
taskschd.msc) - Utwórz zadanie → Akcje → Nowa
- Program:
C:\tools\JsN\JsN.exe - Argumenty:
C:\scripts\monitor\config.json - 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 |