- Add lib/logger.js: timestamped structured logging with 5MB x 5 file rotation - Add lib/watchdog.js: generic child process supervisor with rate-limited restarts - Enhance client.js: WS ping/pong liveness detection, uncaughtException/unhandledRejection handlers, systemd sd-notify integration - Refactor frpc.js: FrpcManager now delegates to Watchdog instead of manual spawn/exit - Enhance install.sh: environment file, log directory, systemd resource limits, security hardening, WatchdogSec=60 - Replace all console.log/warn/error with structured logger across modules Made-with: Cursor
22 lines
487 B
JavaScript
22 lines
487 B
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
const { ClawClient } = require('../lib/client');
|
|
const log = require('../lib/logger');
|
|
|
|
const client = new ClawClient();
|
|
client.start();
|
|
|
|
let stopping = false;
|
|
|
|
function shutdown(signal) {
|
|
if (stopping) return;
|
|
stopping = true;
|
|
log.info('clawd', `收到 ${signal},正在停止...`);
|
|
client.stop();
|
|
setTimeout(() => process.exit(0), 500);
|
|
}
|
|
|
|
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
process.on('SIGTERM', () => shutdown('SIGTERM'));
|