| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/bash
- # GAT-LSTM TMP预测模型 API 服务停止脚本
- # 使用方法: bash stop.sh
- set -e
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- PID_FILE="$SCRIPT_DIR/api.pid"
- echo "[停止] 停止GAT-LSTM TMP预测模型 API 服务..."
- # 检查PID文件是否存在
- if [ ! -f "$PID_FILE" ]; then
- echo "[警告] 未找到PID文件,服务可能未运行"
- exit 0
- fi
- # 读取PID
- PID=$(cat "$PID_FILE")
- # 检查进程是否存在
- if ! ps -p $PID > /dev/null 2>&1; then
- echo "[警告] 进程 (PID: $PID) 不存在,可能已经停止"
- rm -f "$PID_FILE"
- exit 0
- fi
- # 尝试优雅停止(SIGTERM)
- echo "[停止信号] 发送停止信号 (SIGTERM) 到进程 $PID..."
- kill -TERM $PID
- # 等待进程停止
- echo "[等待] 等待进程停止..."
- TIMEOUT=10
- COUNTER=0
- while ps -p $PID > /dev/null 2>&1; do
- sleep 1
- COUNTER=$((COUNTER + 1))
- if [ $COUNTER -ge $TIMEOUT ]; then
- echo "[警告] 进程未在 ${TIMEOUT}秒内停止,尝试强制停止..."
- kill -KILL $PID
- sleep 1
- break
- fi
- done
- # 再次检查进程是否停止
- if ps -p $PID > /dev/null 2>&1; then
- echo "[失败] 进程停止失败 (PID: $PID)"
- exit 1
- else
- echo "[成功] 服务已成功停止 (PID: $PID)"
- rm -f "$PID_FILE"
- fi
|