JsN:n määritys ja käyttö


Käynnistäminen

JsN.exe <polku_määritykseen.json>

Esimerkkejä:

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

JSON-määrityksen muoto

{
  "scriptfile": "./minun_skripti.js",
  "arg": {
    "key1": "value1",
    "key2": 42,
    "key3": true,
    "nested": {
      "sub": "value"
    }
  }
}
Kenttä Tyyppi Kuvaus
scriptfile merkkijono Polku JS-tiedostoon (suhteessa määrityskansioon tai absoluuttinen)
arg objekti Mielivaltaiset tiedot, jotka ovat saatavilla skriptissä nimellä arg

arg:n käyttö skriptissä

Kaikki "arg":n sisältö välitetään JS:ään globaalina objektina arg:

Määritys:

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

Skripti 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

Polut scriptfile-kentässä

Polku scriptfile:ssä voi olla:

Muoto Esimerkki Toiminta
Suhteellinen "./script.js" Suhteessa määrityskansioon
Absoluuttinen "C:\\scripts\\run.js" Absoluuttinen polku

Suositus: Pidä määritys ja skripti samassa kansiossa ja käytä muotoa "./script.js".


Projektirakenne

Suositeltu tiedostojärjestely:

my-project/
├── config.json        ← määritys (annetaan JsN.exe:lle)
├── script.js          ← pääskripti
└── lib/
    └── helpers.js     ← apufunktiot (tarvittaessa)

Useita määrityksiä eri tehtäviin

Voit käyttää yhdelle skriptille useita määrityksiä eri parametreilla:

monitor/
├── monitor.js                  ← jaettu skripti
├── monitor-production.json     ← määritys tuotantoympäristöön
└── monitor-staging.json        ← määritys testiympäristöön

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

Ajastettu suoritus (Tehtävien ajoitus)

Käytä Windowsin Tehtävien ajoitusta jaksottaiseen suoritukseen:

  1. Avaa Tehtävien ajoitus (taskschd.msc)
  2. Luo tehtävä → Toiminnot → Uusi
  3. Ohjelma: C:\tools\JsN\JsN.exe
  4. Argumentit: C:\scripts\monitor\config.json
  5. Määritä laukaisin (esim. joka N minuutti, käynnistyksessä jne.)

Tai PowerShellin kautta:

$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

Suorittaminen järjestelmänvalvojana

svc_*-funktiot vaativat järjestelmänvalvojan oikeudet. Suoritustapoja:

Pikakuvakkeen kautta: Napsauta hiiren kakkospainikkeella → Suorita järjestelmänvalvojana.

Tehtävien ajoituksen kautta: Tehtävää luotaessa → Suorita suurimmilla käyttöoikeuksilla.

PowerShellin kautta:

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

JsN.exe:n poistumiskoodit

Koodi Merkitys
0 Skripti suoritettiin onnistuneesti
1 Määrityksen tai JS-tiedoston lataaminen epäonnistui