部署脚本修复
This commit is contained in:
@@ -47,6 +47,7 @@ check_jar() {
|
||||
|
||||
# 停止旧服务
|
||||
stop_service() {
|
||||
# 1. 尝试通过 PID 文件停止
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
if ps -p "$PID" > /dev/null 2>&1; then
|
||||
@@ -71,8 +72,27 @@ stop_service() {
|
||||
log_warn "PID 文件存在但进程不存在,清理 PID 文件"
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
else
|
||||
log_info "没有找到 PID 文件,服务可能未运行"
|
||||
fi
|
||||
|
||||
# 2. 双重检查:通过进程名查找并停止(防止 PID 文件丢失的情况)
|
||||
PIDS=$(ps aux | grep "$JAR_NAME" | grep -v grep | awk '{print $2}')
|
||||
if [ -n "$PIDS" ]; then
|
||||
log_warn "检测到残留进程 (PIDs: $PIDS),正在清理..."
|
||||
for PID in $PIDS; do
|
||||
log_info "停止残留进程 $PID"
|
||||
kill "$PID" 2>/dev/null || true
|
||||
done
|
||||
|
||||
sleep 5
|
||||
|
||||
# 再次检查并强制停止
|
||||
PIDS=$(ps aux | grep "$JAR_NAME" | grep -v grep | awk '{print $2}')
|
||||
if [ -n "$PIDS" ]; then
|
||||
for PID in $PIDS; do
|
||||
log_warn "强制停止残留进程 $PID"
|
||||
kill -9 "$PID" 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user