JsN 구성 및 실행
실행
JsN.exe <path_to_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 파일 로드 실패 |