From 156a0e57527ae5cb395176f13faf77edc091f5e9 Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Fri, 31 Oct 2025 17:42:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=AF=E5=8A=A8=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- start_background.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ stop_background.sh | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 start_background.sh create mode 100644 stop_background.sh diff --git a/.gitignore b/.gitignore index 911a926..abd0d01 100644 --- a/.gitignore +++ b/.gitignore @@ -183,4 +183,5 @@ cython_debug/ .vscode/ # Database -data/bot.db \ No newline at end of file +data/bot.db +liubai_web.pid \ No newline at end of file diff --git a/start_background.sh b/start_background.sh new file mode 100644 index 0000000..5d6e2c8 --- /dev/null +++ b/start_background.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# LiuBai网站后台启动脚本 + +PID_FILE="./liubai_web.pid" +LOG_FILE="./liubai_web.log" + +# 检查是否已经在运行 +if [ -f "$PID_FILE" ]; then + PID=$(cat "$PID_FILE") + if kill -0 "$PID" 2>/dev/null; then + echo "服务已经在运行 (PID: $PID)" + exit 1 + else + echo "删除旧的PID文件..." + rm -f "$PID_FILE" + fi +fi + +echo "正在启动LiuBaiBlog网站服务器..." + +# 使用nohup在后台运行 +nohup python3 app.py > "$LOG_FILE" 2>&1 & +PID=$! + +# 保存PID +echo $PID > "$PID_FILE" + +echo "服务器已在后台启动!" +echo "PID: $PID" +echo "日志文件: $LOG_FILE" +echo "要停止服务,请运行: ./stop_background.sh" + +# 等待一下确保服务器启动 +sleep 2 + +# 检查进程是否还在运行 +if kill -0 "$PID" 2>/dev/null; then + echo "服务器启动成功!" +else + echo "服务器启动失败,请检查日志文件: $LOG_FILE" + rm -f "$PID_FILE" + exit 1 +fi diff --git a/stop_background.sh b/stop_background.sh new file mode 100644 index 0000000..514a725 --- /dev/null +++ b/stop_background.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# LiuBai网站后台停止脚本 + +PID_FILE="./liubai_web.pid" + +if [ ! -f "$PID_FILE" ]; then + echo "服务未运行或PID文件不存在" + exit 1 +fi + +PID=$(cat "$PID_FILE") + +echo "正在停止服务器 (PID: $PID)..." + +# 尝试优雅地停止进程 +if kill -TERM "$PID" 2>/dev/null; then + echo "发送停止信号..." + + # 等待进程结束 + for i in {1..10}; do + if ! kill -0 "$PID" 2>/dev/null; then + echo "服务器已停止" + rm -f "$PID_FILE" + exit 0 + fi + sleep 1 + done + + # 如果进程还在运行,强制杀死 + echo "强制停止进程..." + kill -KILL "$PID" 2>/dev/null + rm -f "$PID_FILE" + echo "服务器已强制停止" +else + echo "进程不存在或已停止" + rm -f "$PID_FILE" +fi