From a96d528a4e8e07277ca47ccc33e412403497c5cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=AC=E5=93=A5=E4=BE=83=E4=BE=83=E4=BE=83ygkkk?= <121604513+yonggekkk@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:39:42 +0800 Subject: [PATCH] Update app.js --- app.js | 59 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/app.js b/app.js index 44ef68b..d4c9744 100644 --- a/app.js +++ b/app.js @@ -5,29 +5,54 @@ const app = express(); app.use(express.json()); const commandToRun = "cd ~ && bash serv00keep.sh"; function runCustomCommand() { - exec(commandToRun, function (err, stdout, stderr) { - if (err) { - console.log("命令执行错误: " + err); - return; - } - if (stderr) { - console.log("命令执行标准错误输出: " + stderr); - } - console.log("命令执行成功:\n" + stdout); + exec(commandToRun, (err, stdout, stderr) => { + if (err) console.error("执行错误:", err); + else console.log("执行成功:", stdout); }); } -setInterval(runCustomCommand, 3 * 60 * 1000); // 3 分钟 = 3 * 60 * 1000 毫秒 -app.get("/up", function (req, res) { +app.get("/up", (req, res) => { runCustomCommand(); res.type("html").send("
Serv00-name服务器网页保活启动:Serv00-name!UP!UP!UP!"); }); -app.use((req, res, next) => { - if (req.path === '/up') { - return next(); - } - res.status(404).send('把浏览器地址改为:http://where.name.serv00.net/up 这样才能启动Serv00网页保活'); +app.get("/re", (req, res) => { + const additionalCommands = ` + USERNAME=$(whoami | tr '[:upper:]' '[:lower:]') + FULL_PATH="/home/\${USERNAME}/domains/\${USERNAME}.serv00.net/logs" + cd "\$FULL_PATH" + pkill -f 'run -c con' || echo "无进程可终止,准备执行重启……" + sbb="\$(cat sb.txt 2>/dev/null)" + nohup ./"\$sbb" run -c config.json >/dev/null 2>&1 & + sleep 3 + echo 'Serv00主程序重启成功,请检测三个主节点是否可用,如不可用,可再次刷新重启网页或者卸载重装脚本' + `; + exec(additionalCommands, (err, stdout, stderr) => { + console.log('stdout:', stdout); + console.error('stderr:', stderr); + if (err) { + return res.status(500).send(`错误:${stderr || stdout}`); + } + res.type('text').send(stdout); + }); +}); +app.get("/list/key", (req, res) => { + const listCommands = ` + USERNAME=$(whoami | tr '[:upper:]' '[:lower:]') + FULL_PATH="/home/\${USERNAME}/domains/\${USERNAME}.serv00.net/logs/list.txt" + cat "\$FULL_PATH" + `; + exec(listCommands, (err, stdout, stderr) => { + if (err) { + console.error(`路径验证失败: ${stderr}`); + return res.status(404).send(stderr); + } + res.type('text').send(stdout); + }); }); +app.use((req, res) => { + res.status(404).send('浏览器地址:http://where.name.serv00.net 三种路径功能:/up是保活,/re是重启,/list/key是节点及订阅信息'); +}); +setInterval(runCustomCommand, 3 * 60 * 1000); app.listen(3000, () => { - console.log("服务器已启动,监听端口 3000"); + console.log("服务器运行在端口 3000"); runCustomCommand(); });