@devskeo/ward-agent 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/cli/start.d.ts.map +1 -1
- package/dist/cli/start.js +6 -3
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/systemd.d.ts.map +1 -1
- package/dist/cli/systemd.js +26 -14
- package/dist/cli/systemd.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +10 -2
- package/dist/daemon.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,7 +55,13 @@ ward start http://192.168.1.100:4000 --name production
|
|
|
55
55
|
|------|------|
|
|
56
56
|
| `--name <그룹명>` | 서버 그룹명 (대시보드에서 서버를 그룹으로 묶어 표시) |
|
|
57
57
|
|
|
58
|
-
Linux 환경에서는 시작 시 systemd 서비스로 자동 등록되어 서버 재부팅 후에도 자동 실행됩니다.
|
|
58
|
+
Linux 환경에서는 시작 시 systemd **user** 서비스로 자동 등록되어 서버 재부팅 후에도 자동 실행됩니다.
|
|
59
|
+
|
|
60
|
+
> **주의**: SSH 세션이 끊어진 후에도 서비스가 계속 실행되려면 아래 명령을 한 번 실행해야 합니다:
|
|
61
|
+
> ```bash
|
|
62
|
+
> sudo loginctl enable-linger $USER
|
|
63
|
+
> ```
|
|
64
|
+
> 이 설정 없이는 로그아웃 시 user systemd 인스턴스가 함께 종료됩니다.
|
|
59
65
|
|
|
60
66
|
---
|
|
61
67
|
|
package/dist/cli/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AAgBA,wBAAgB,cAAc,IAAI,OAAO,CA2BxC;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AA6BD,wBAAsB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AAgBA,wBAAgB,cAAc,IAAI,OAAO,CA2BxC;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AA6BD,wBAAsB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE7F"}
|
package/dist/cli/start.js
CHANGED
|
@@ -128,17 +128,20 @@ async function start(serverUrl, options = {}) {
|
|
|
128
128
|
serverUrl: normalizedUrl,
|
|
129
129
|
hostname,
|
|
130
130
|
});
|
|
131
|
-
// 6. config 저장
|
|
131
|
+
// 6. config 저장 (기존 서비스 설정 유지)
|
|
132
|
+
const existingConfig = (0, AgentConfig_js_1.loadConfig)();
|
|
132
133
|
(0, AgentConfig_js_1.saveConfig)({
|
|
133
134
|
server: { url: normalizedUrl, groupName: options.name },
|
|
134
135
|
metrics: { interval: 30 },
|
|
135
|
-
services: [],
|
|
136
|
+
services: existingConfig?.services ?? [],
|
|
136
137
|
});
|
|
137
138
|
// 7. 데몬 프로세스 시작
|
|
138
139
|
const daemonScript = path.join(__dirname, '../daemon.js');
|
|
140
|
+
const logPath = path.join(wardDir, 'daemon.log');
|
|
141
|
+
const logFd = fs.openSync(logPath, 'a');
|
|
139
142
|
const child = (0, child_process_1.spawn)('node', [daemonScript], {
|
|
140
143
|
detached: true,
|
|
141
|
-
stdio: 'ignore',
|
|
144
|
+
stdio: ['ignore', logFd, logFd],
|
|
142
145
|
env: { ...process.env, WARD_DAEMON: 'true' },
|
|
143
146
|
});
|
|
144
147
|
child.unref();
|
package/dist/cli/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,wCA2BC;AAGD,oCAGC;AA6BD,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemd.d.ts","sourceRoot":"","sources":["../../src/cli/systemd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"systemd.d.ts","sourceRoot":"","sources":["../../src/cli/systemd.ts"],"names":[],"mappings":"AAkBA,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BvF;AAGD,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAanD"}
|
package/dist/cli/systemd.js
CHANGED
|
@@ -36,11 +36,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.setupSystemd = setupSystemd;
|
|
37
37
|
exports.removeSystemd = removeSystemd;
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
39
41
|
const child_process_1 = require("child_process");
|
|
40
42
|
const util_1 = require("util");
|
|
41
43
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
42
|
-
const
|
|
43
|
-
//
|
|
44
|
+
const SERVICE_NAME = 'ward-agent.service';
|
|
45
|
+
// user-level systemd 서비스 경로 (~/.config/systemd/user/)
|
|
46
|
+
function getUserServicePath() {
|
|
47
|
+
return path.join(os.homedir(), '.config', 'systemd', 'user', SERVICE_NAME);
|
|
48
|
+
}
|
|
49
|
+
// Linux 전용: systemd user 서비스 등록 (root 권한 불필요)
|
|
50
|
+
// 현재 세션에서는 이미 데몬이 실행 중이므로 start는 하지 않음 (충돌 방지)
|
|
51
|
+
// 재부팅 후 자동 시작만 설정
|
|
44
52
|
async function setupSystemd(serverUrl, groupName) {
|
|
45
53
|
const nameArg = groupName ? ` --name "${groupName}"` : '';
|
|
46
54
|
const serviceContent = `[Unit]
|
|
@@ -54,27 +62,31 @@ Restart=always
|
|
|
54
62
|
RestartSec=10
|
|
55
63
|
|
|
56
64
|
[Install]
|
|
57
|
-
WantedBy=
|
|
65
|
+
WantedBy=default.target
|
|
58
66
|
`;
|
|
59
67
|
try {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
68
|
+
const servicePath = getUserServicePath();
|
|
69
|
+
fs.mkdirSync(path.dirname(servicePath), { recursive: true });
|
|
70
|
+
fs.writeFileSync(servicePath, serviceContent, 'utf-8');
|
|
71
|
+
await execAsync('systemctl --user daemon-reload');
|
|
72
|
+
await execAsync('systemctl --user enable ward-agent');
|
|
73
|
+
// 현재 데몬은 이미 실행 중이므로 start 생략 (재부팅 후 자동 시작)
|
|
74
|
+
console.log('systemd user 서비스가 등록되었습니다. (재부팅 후 자동 시작)');
|
|
64
75
|
}
|
|
65
76
|
catch (error) {
|
|
66
|
-
|
|
67
|
-
console.warn('systemd 서비스 등록 실패 (root 권한 필요):', error instanceof Error ? error.message : error);
|
|
77
|
+
console.warn('systemd 서비스 등록 실패:', error instanceof Error ? error.message : error);
|
|
68
78
|
}
|
|
69
79
|
}
|
|
70
|
-
// Linux 전용: systemd 서비스 제거
|
|
80
|
+
// Linux 전용: systemd user 서비스 제거
|
|
71
81
|
async function removeSystemd() {
|
|
72
82
|
try {
|
|
73
|
-
await execAsync('systemctl stop ward-agent').catch(() => { });
|
|
74
|
-
await execAsync('systemctl disable ward-agent').catch(() => { });
|
|
75
|
-
|
|
76
|
-
|
|
83
|
+
await execAsync('systemctl --user stop ward-agent').catch(() => { });
|
|
84
|
+
await execAsync('systemctl --user disable ward-agent').catch(() => { });
|
|
85
|
+
const servicePath = getUserServicePath();
|
|
86
|
+
if (fs.existsSync(servicePath)) {
|
|
87
|
+
fs.unlinkSync(servicePath);
|
|
77
88
|
}
|
|
89
|
+
await execAsync('systemctl --user daemon-reload').catch(() => { });
|
|
78
90
|
console.log('systemd 서비스가 제거되었습니다.');
|
|
79
91
|
}
|
|
80
92
|
catch (error) {
|
package/dist/cli/systemd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemd.js","sourceRoot":"","sources":["../../src/cli/systemd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"systemd.js","sourceRoot":"","sources":["../../src/cli/systemd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,oCA2BC;AAGD,sCAaC;AA7DD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,sDAAsD;AACtD,SAAS,kBAAkB;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,8CAA8C;AAC9C,+CAA+C;AAC/C,kBAAkB;AACX,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,SAAkB;IACtE,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,cAAc,GAAG;;;;;;YAMb,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,SAAS,GAAG,OAAO;;;;;;CAM3E,CAAC;IAEA,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;QACzC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAClD,MAAM,SAAS,CAAC,oCAAoC,CAAC,CAAC;QACtD,2CAA2C;QAC3C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,gCAAgC;AACzB,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,kCAAkC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,qCAAqC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,CAAC,gCAAgC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAiMA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAiMA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgEjD"}
|
package/dist/daemon.js
CHANGED
|
@@ -252,14 +252,22 @@ async function startDaemon() {
|
|
|
252
252
|
// LogForwarder 시작
|
|
253
253
|
logForwarder.start();
|
|
254
254
|
// 메트릭 수집 인터벌 설정
|
|
255
|
-
metricsInterval = setInterval(
|
|
255
|
+
metricsInterval = setInterval(() => {
|
|
256
|
+
collectAndSendMetrics().catch(err => console.error('메트릭 수집 오류:', err));
|
|
257
|
+
}, interval * 1000);
|
|
256
258
|
// Heartbeat 인터벌 설정 (30초)
|
|
257
|
-
heartbeatInterval = setInterval(
|
|
259
|
+
heartbeatInterval = setInterval(() => {
|
|
260
|
+
sendHeartbeat().catch(err => console.error('하트비트 오류:', err));
|
|
261
|
+
}, 30000);
|
|
258
262
|
// 즉시 첫 번째 수집 실행
|
|
259
263
|
await collectAndSendMetrics();
|
|
260
264
|
await sendHeartbeat();
|
|
261
265
|
await syncServicesToServer();
|
|
262
266
|
}
|
|
267
|
+
// 처리되지 않은 Promise 거부 → 로그만 출력, 데몬 종료 방지
|
|
268
|
+
process.on('unhandledRejection', (reason) => {
|
|
269
|
+
console.error('처리되지 않은 Promise 거부:', reason);
|
|
270
|
+
});
|
|
263
271
|
// SIGUSR2: ward service restart <name> 요청 처리
|
|
264
272
|
process.on('SIGUSR2', () => {
|
|
265
273
|
const restartRequestPath = path.join(os.homedir(), '.ward', 'restart-request');
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiMA,
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|