1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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); // 非零退出码表示异常退出
- });
|