| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/bin/bash
- # 定义变量
- VENV_PATH="./venv" # 虚拟环境路径
- APP_NAME="main:app"
- HOST="0.0.0.0"
- PORT="9201"
- UVICORN_CMD="uvicorn $APP_NAME --host $HOST --port $PORT"
- # 激活虚拟环境
- source $VENV_PATH/bin/activate
- # 停止现有进程
- echo "Stopping existing processes..."
- PIDS=$(pgrep -f "$UVICORN_CMD")
- if [ -z "$PIDS" ]; then
- echo "No running processes found."
- else
- for PID in $PIDS; do
- echo "Terminating process $PID..."
- kill -15 $PID
- sleep 1 # 等待1秒,确保进程有时间优雅关闭
- if kill -0 $PID > /dev/null 2>&1; then
- echo "Process $PID is still running, sending SIGKILL..."
- kill -9 $PID
- fi
- done
- fi
- # 启动新进程
- echo "Starting new process..."
- $UVICORN_CMD > server.log 2>&1 &
- NEW_PID=$!
- echo "New process started with PID $NEW_PID."
- # 可选:检查新进程是否成功启动
- sleep 2 # 等待2秒,确保新进程有足够的时间启动
- if kill -0 $NEW_PID > /dev/null 2>&1; then
- echo "New process with PID $NEW_PID is running."
- else
- echo "Failed to start the new process."
- fi
|