diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..19dd921 --- /dev/null +++ b/start.sh @@ -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" \ No newline at end of file diff --git a/start_websocket.sh b/start_websocket.sh new file mode 100644 index 0000000..a18da3a --- /dev/null +++ b/start_websocket.sh @@ -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)" \ No newline at end of file diff --git a/stop.sh b/stop.sh new file mode 100644 index 0000000..21e2c56 --- /dev/null +++ b/stop.sh @@ -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 \ No newline at end of file diff --git a/stop_websocket.sh b/stop_websocket.sh new file mode 100644 index 0000000..131998a --- /dev/null +++ b/stop_websocket.sh @@ -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 \ No newline at end of file