Konfiguration und Ausführung von JsN
Ausführung
JsN.exe <pfad_zur_config.json>
Beispiele:
JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json
JSON-Konfigurationsformat
{
"scriptfile": "./my_script.js",
"arg": {
"key1": "value1",
"key2": 42,
"key3": true,
"nested": {
"sub": "value"
}
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
scriptfile |
string | Pfad zur JS-Datei (relativ zum Konfigurationsordner oder absolut) |
arg |
object | Beliebige Daten, die im Skript als arg verfügbar sind |
Zugriff auf arg in einem Skript
Der gesamte Inhalt von "arg" wird als globales Objekt arg an JS übergeben:
Konfiguration:
{
"scriptfile": "./run.js",
"arg": {
"host": "smtp.office365.com",
"port": 587,
"recipients": ["admin@example.com", "ops@example.com"],
"debug": false
}
}
Skript 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
Pfade in scriptfile
Der Pfad in scriptfile kann sein:
| Format | Beispiel | Verhalten |
|---|---|---|
| Relativ | "./script.js" |
Relativ zum Konfigurationsordner |
| Absolut | "C:\\scripts\\run.js" |
Absoluter Pfad |
Empfehlung: Bewahren Sie die Konfiguration und das Skript im selben Ordner auf und verwenden Sie
"./script.js".
Projektstruktur
Empfohlene Dateiorganisation:
my-project/
├── config.json ← Konfiguration (wird an JsN.exe übergeben)
├── script.js ← Hauptskript
└── lib/
└── helpers.js ← Hilfsfunktionen (falls benötigt)
Mehrere Konfigurationen für verschiedene Aufgaben
Sie können mehrere Konfigurationen für ein Skript mit unterschiedlichen Parametern haben:
monitor/
├── monitor.js ← Gemeinsames Skript
├── monitor-production.json ← Konfiguration für Produktion
└── monitor-staging.json ← Konfiguration für 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/..."
}
}
Geplante Ausführung (Taskplaner)
Verwenden Sie für die periodische Ausführung den Windows-Taskplaner:
- Öffnen Sie den Taskplaner (
taskschd.msc) - Aufgabe erstellen → Aktionen → Neu
- Programm:
C:\tools\JsN\JsN.exe - Argumente:
C:\scripts\monitor\config.json - Trigger konfigurieren (alle N Minuten, beim Start usw.)
Oder über 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
Ausführung als Administrator
Die svc_*-Funktionen erfordern Administratorrechte. Ausführungsmöglichkeiten:
Über Verknüpfung: Rechtsklick → Als Administrator ausführen.
Über Taskplaner: Beim Erstellen der Aufgabe → Mit höchsten Berechtigungen ausführen.
Über PowerShell:
Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs
JsN.exe-Exitcodes
| Code | Bedeutung |
|---|---|
0 |
Skript erfolgreich ausgeführt |
1 |
Fehler beim Laden der Konfiguration oder JS-Datei |