index.js 670 字节
const { spawn } = require('child_process');

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

// 1. 启动 frpc 进程
const frpc = spawn(`${__dirname}/frpc`, ['-c', `${__dirname}/frpc.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}`);
});