添加启动脚本
This commit is contained in:
parent
4e72ed491a
commit
15e088ffad
31
start.sh
Normal file
31
start.sh
Normal 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
23
start_websocket.sh
Normal 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
28
stop.sh
Normal 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
28
stop_websocket.sh
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user