index.js 806 字节
function create_frpc() {
  const { spawn } = require("child_process");

  console.log("启动 frpc ...");

  // 1. 启动 frpc 进程
  const frpc = spawn(`${__dirname}/frpc`, ["-c", `${__dirname}/frpc_${process.env.NAME}.toml`], {
    stdio: "inherit", // 共享输入输出
  });

  // 2. 监听 Node.js 退出事件并关闭 frpc
  function cleanup() {
    if (!frpc.killed) {
      frpc.kill("SIGTERM"); // 发送终止信号
    }
  }

  // 捕获各种退出信号
  process.on("exit", cleanup);
  process.on("SIGINT", () => {
    cleanup();
    process.exit();
  });
  process.on("SIGTERM", () => {
    cleanup();
    process.exit();
  });

  // 3. 监听 frpc 的退出
  frpc.on("exit", (code) => {
    console.log(`frpc 已退出,代码: ${code}`);
  });
}

module.exports = {
  create_frpc
};