0°

假如云效这种有异常的,没直接中断,一直卡住了,怎么捕捉到这个异常呢让它中断呢?每次卡住很久。[阿里云]


假如云效这种有异常的,没直接中断,一直卡住了,怎么捕捉到这个异常呢让它中断呢?每次卡住很久。


build 时候也要加这个参数吗?

以下为热心网友提供的参考意见

在 package.json 的 “scripts” 部分,添加一个新脚本来处理异常情况。这个脚本可以定期检查进程是否处于活动状态,如果检测到异常,则触发中断。

"scripts": {
  "dev": "node build/dev-server.js",
  "start": "node build/dev-server.js",
  "build": "set NODE_ENV=production && node build/build.js",
  "e2e": "node test/e2e/runner.js",
  "test": "npm run e2e",
  "monitor": "node monitor.js"
},
"monitor": {
  "script": "node monitor.js",
  "description": "定期检查进程活动状态,发现异常时中断"
}

,创建一个名为 “monitor.js” 的文件,用于实现进程监控功能。在 monitor.js 中,你可以使用 “ps” 命令来检查进程是否处于活动状态。如果发现异常,你可以使用 “kill” 命令中断进程。


const { spawn } = require('child_process');
const ps = spawn('ps', ['ax']);
ps.stdout.on('data', (data) => {
  const lines = data.toString().split('
');
  for (const line of lines) {
    if (line.includes('your_process_name')) {
      console.log('进程活动正常');
    } else {
      console.log('发现异常进程,尝试中断');
      const killProcess = spawn('kill', ['-9', 'your_process_id']);
      killProcess.on('close', (code) => {
        console.log(`进程中断成功,退出代码 ${code}`);
      });
    }
  }
});
ps.stderr.on('data', (data) => {
  console.error(`ps 命令执行失败:${data}`);
});
ps.on('close', (code) => {
  console.log(`ps 命令执行结束,退出代码 ${code}`);
});

你需要将 “your_process_name” 和 “your_process_id” 替换为实际的进程名和 ID。在运行此脚本之前,请确保已经运行了 “start” 或 “build” 脚本。这样,monitor.js 才能正确检查进程活动状态。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====