添加启动脚本

This commit is contained in:
haotian 2025-05-30 11:40:27 +08:00
parent 4e72ed491a
commit 15e088ffad
4 changed files with 110 additions and 0 deletions

31
start.sh Normal file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# 参数检查
if [ $# -ne 3 ]; then
echo "用法: $0 <项目目录> <虚拟环境路径> <主程序文件名>"
exit 1
fi
project_dir="$1"
venv_path="$2"
main_script="$3"
log_file="${project_dir}/service.log" # 日志文件路径
pid_file="${project_dir}/service.pid" # PID文件路径
# 进入项目目录
cd "$project_dir" || {
echo "错误: 无法进入目录 $project_dir"
exit 1
}
# 激活虚拟环境
source "${venv_path}/bin/activate" || {
echo "错误: 无法激活虚拟环境"
exit 1
}
# 后台启动服务并记录PID
nohup python "$main_script" > "$log_file" 2>&1 &
echo $! > "$pid_file"
echo "服务已启动! PID: $(cat "$pid_file"), 日志: $log_file"

23
start_websocket.sh Normal file
View File

@ -0,0 +1,23 @@
#!/bin/bash
# 创建日志目录
LOG_DIR="logs/websocket"
mkdir -p $LOG_DIR
# 生成日志文件名(使用当前时间)
LOG_FILE="$LOG_DIR/websocket_$(date +%Y%m%d_%H%M%S).log"
# 检查是否已经在运行
if pgrep -f "run_websocket.py" > /dev/null; then
echo "WebSocket客户端已经在运行中"
exit 1
fi
# 在后台运行程序并将输出重定向到日志文件
nohup python run_websocket.py > "$LOG_FILE" 2>&1 &
# 保存进程ID
echo $! > "$LOG_DIR/websocket.pid"
echo "WebSocket客户端已启动日志保存在: $LOG_FILE"
echo "进程ID: $(cat $LOG_DIR/websocket.pid)"

28
stop.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# 参数检查
if [ $# -ne 1 ]; then
echo "用法: $0 <项目目录>"
exit 1
fi
project_dir="$1"
pid_file="${project_dir}/service.pid"
# 检查PID文件是否存在
if [ ! -f "$pid_file" ]; then
echo "错误: PID文件不存在服务可能未运行"
exit 1
fi
# 停止进程
pid=$(cat "$pid_file")
if kill -0 "$pid" >/dev/null 2>&1; then
kill "$pid"
rm "$pid_file"
echo "服务已停止 (PID: $pid)"
else
echo "错误: 进程 $pid 未运行"
rm "$pid_file"
exit 1
fi

28
stop_websocket.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# 日志目录
LOG_DIR="logs/websocket"
PID_FILE="$LOG_DIR/websocket.pid"
# 检查PID文件是否存在
if [ ! -f "$PID_FILE" ]; then
echo "找不到PID文件尝试通过进程名查找..."
PID=$(pgrep -f "run_websocket.py")
if [ -z "$PID" ]; then
echo "WebSocket客户端未在运行"
exit 0
fi
else
PID=$(cat "$PID_FILE")
fi
# 检查进程是否存在
if ps -p $PID > /dev/null; then
echo "正在停止WebSocket客户端 (PID: $PID)..."
kill $PID
rm -f "$PID_FILE"
echo "WebSocket客户端已停止"
else
echo "WebSocket客户端未在运行"
rm -f "$PID_FILE"
fi