const web = require('./src/web') const config = require('./src/config') const interval = require('./src/Interval') const robot = require('./src/robot') const {getRustConfig} = require("./src/config"); const {logger} = require("./src/utils/logger"); const {exec} = require("child_process"); try { // 开机前做一次,清除确保环境干净(删除可能遗留的as程序) robot.closeAppAll() // 配置环境 config.init() // 启动web web.init() // 定时任务 interval.init() } catch (e) { logger.error(e.stack) logger.error(e) } //node关机前的一些操作 // 当进程即将退出时执行一些操作 process.on('exit', (code) => { logger.info(`即将退出,退出码:${code}`); // 在这里执行清理工作 }); // 监听SIGINT信号(例如用户按下Ctrl+C) process.on('SIGINT', () => { logger.info('收到SIGINT信号,准备退出...'); // 在这里执行清理工作 process.exit(); // 这将触发exit事件 }); // 监听SIGTERM信号(通常是系统请求进程终止) process.on('SIGTERM', async () => { logger.info('收到SIGTERM信号,准备退出...'); logger.info('关机前的一些操作...'); // 关机前为了防止 node 更新,需要吧map 里面的pid 写在本地文件 await robot.closeAppAll() logger.info('自我关闭~~...'); // 在这里执行清理工作 process.exit(); // 这将触发exit事件 }); // 还可以处理未捕获的异常 process.on('uncaughtException', (err) => { // logger.error('捕获到未处理的异常1:', err.message); // logger.info('捕获到未处理的异常2:', err.message); // 记录错误消息和堆栈 logger.error('捕获到未处理的异常:', err.message); // 记录错误信息 logger.error('错误堆栈:', err.stack); // 记录错误堆栈 // 可选: 记录其他上下文信息 // 例如,您可以添加时间戳、请求信息等 // 记录异常的详细信息 logger.info('捕获到未处理的异常:', JSON.stringify({ timestamp: new Date(), error: err.message, stack: err.stack }, null, 2)); // 使用 JSON.stringify 格式化输出 // 在这里执行清理工作 process.exit(1); // 非零退出码表示异常退出 });