Настройка и запуск JsN
Запуск
JsN.exe <путь_к_config.json>
Примеры:
JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json
Формат JSON-конфигурации
{
"scriptfile": "./my_script.js",
"arg": {
"key1": "value1",
"key2": 42,
"key3": true,
"nested": {
"sub": "value"
}
}
}
| Поле | Тип | Описание |
|---|---|---|
scriptfile |
строка | Путь к JS-файлу (относительно папки с конфигом или абсолютный) |
arg |
объект | Произвольные данные, доступные в скрипте как arg |
Доступ к arg в скрипте
Всё содержимое "arg" передаётся в JS как глобальный объект arg:
Конфигурация:
{
"scriptfile": "./run.js",
"arg": {
"host": "smtp.office365.com",
"port": 587,
"recipients": ["admin@example.com", "ops@example.com"],
"debug": false
}
}
Скрипт 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
Пути в scriptfile
Путь в scriptfile может быть:
| Формат | Пример | Поведение |
|---|---|---|
| Относительный | "./script.js" |
Относительно папки с конфигурационным файлом |
| Абсолютный | "C:\\scripts\\run.js" |
Абсолютный путь |
Рекомендация: Храните конфигурационный файл и скрипт в одной папке и используйте
"./script.js".
Структура проекта
Рекомендуемая организация файлов:
my-project/
├── config.json ← конфигурация (передаётся в JsN.exe)
├── script.js ← основной скрипт
└── lib/
└── helpers.js ← вспомогательные функции (при необходимости)
Несколько конфигураций для разных задач
Вы можете иметь несколько конфигурационных файлов для одного скрипта с разными параметрами:
monitor/
├── monitor.js ← общий скрипт
├── monitor-production.json ← конфигурация для продакшена
└── monitor-staging.json ← конфигурация для стейджинга
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/..."
}
}
Планирование выполнения (Планировщик задач)
Для периодического выполнения используйте Планировщик заданий Windows:
- Откройте Планировщик заданий (
taskschd.msc) - Создайте задачу → Действия → Создать
- Программа:
C:\tools\JsN\JsN.exe - Аргументы:
C:\scripts\monitor\config.json - Настройте триггер (каждые N минут, при запуске и т.д.)
Или через 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
Запуск от имени администратора
Функции svc_* требуют прав администратора. Способы запуска:
Через ярлык: Правой кнопкой мыши → Запуск от имени администратора.
Через Планировщик заданий: При создании задачи → Выполнять с наивысшими правами.
Через PowerShell:
Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs
Коды завершения JsN.exe
| Код | Значение |
|---|---|
0 |
Скрипт успешно выполнен |
1 |
Не удалось загрузить конфигурационный или JS-файл |