fgv2.0 平台 electron 打包桌面应用
whychw
2026-03-17 c677a993d86c70de9c093209f1d0a0cd9bdea67d
main.js
@@ -106,6 +106,19 @@
      log.info("窗口初始化 接口不通");
      log.info("正在终止java进程,然后重启服务");
      // update(win.webContents, true);
      // 如果是win平台
      if (process.platform == 'darwin' || process.platform == 'win32') {
        stopForWin();
      } else if (process.platform == 'linux') {
        stopForLinux();
      }
    }
  );
};
// 终止java进程 并重启服务 win平台
function stopForWin() {
      let stop = child_process.spawn("cmd.exe", ["/c", `${process.cwd()}\\stop.bat`]);
      log.info(`${process.cwd()}\\stop.bat`);
@@ -139,9 +152,65 @@
        log.info(data);
      });
    }
  );
  
};
// 终止java进程 并重启服务 linux平台
function stopForLinux() {
  let dir = path.join(__dirname, './stop.sh');
  let stop = child_process.spawn('bash', [dir]);
  // 监听脚本执行
  stop.stdout.on('data', (data) => {
    log.info(`stdout: ${data}`);
  });
  stop.stderr.on('data', (data) => {
    log.info(`stderr: ${data}`);
  });
  stop.on('close', (code) => {
    log.info(`子进程退出, 退出码:${code}`);
    log.info("java进程被终止,准备重启服务");
    child_process.exec(`systemctl --user restart fgv2.service`, (err, out, stde) => {
      log.info('==========');
      log.info(err);
      log.info(out);
      log.info(stde);
      if (err) {
        log.error('重启服务失败:' + err);
        let dir = path.join(__dirname, './setup_service.sh');
        child_process.exec(`bash "${dir}"`, (error, stdout, stderr) => {
          if (error) {
            log.error('执行失败:' + error);
          }
          log.info(`脚本输出: ${stdout}`);
          log.error(`脚本错误: ${stderr}`);
        });
      }
      if (out) {
        log.info(`重启服务输出: ${out}`);
      }
      if (stde) {
        log.error(`重启服务错误: ${stde}`);
        let dir = path.join(__dirname, './setup_service.sh');
        child_process.exec(`bash "${dir}"`, (error, stdout, stderr) => {
          log.info('0000000');
          if (error) {
            log.error('执行失败:' + error);
          }
          log.info(`脚本输出: ${stdout}`);
          log.error(`脚本错误: ${stderr}`);
        });
      }
      // 等到服务就绪再重启
      checkService(() => {
        loadingWin.webContents.send("java-ready");
      });
    });
  });
}
async function createWindow(wait, cb) {
  // Create the browser window.
  win = new BrowserWindow({