index.js
806 字节
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
};