From ad9cf38f12e6b7c69487101250293472f70a530f Mon Sep 17 00:00:00 2001 From: jingrow Date: Wed, 14 May 2025 19:23:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96wait-for-it.sh=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E8=AE=BE=E7=BD=AE60=E7=A7=92=E8=B6=85?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=88=A0=E9=99=A4=E8=B0=83=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wait-for-it.sh | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/wait-for-it.sh b/wait-for-it.sh index 3ba29b4..efec03d 100644 --- a/wait-for-it.sh +++ b/wait-for-it.sh @@ -4,37 +4,23 @@ URL=$1 TIMEOUT=60 # 60秒超时 COUNT=0 -echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始等待 Redis 服务启动" -echo "[$(date '+%Y-%m-%d %H:%M:%S')] Redis URL: ${URL}" +echo "等待 Redis 服务启动 (${URL})..." while [ $COUNT -lt $TIMEOUT ] do - # 尝试连接 Redis 并捕获输出 - REDIS_OUTPUT=$(redis-cli -u $URL PING 2>&1) - REDIS_STATUS=$? - - echo "[$(date '+%Y-%m-%d %H:%M:%S')] 尝试连接 Redis (${COUNT}/${TIMEOUT})" - echo "[$(date '+%Y-%m-%d %H:%M:%S')] Redis 响应: ${REDIS_OUTPUT}" - - if [ $REDIS_STATUS -eq 0 ] && echo "$REDIS_OUTPUT" | grep -q PONG; then - echo "[$(date '+%Y-%m-%d %H:%M:%S')] Redis 服务已就绪" - echo "[$(date '+%Y-%m-%d %H:%M:%S')] Redis 连接成功,退出等待" + if redis-cli -u $URL PING | grep -q PONG; then + echo "Redis 服务已就绪" exit 0 - else - echo "[$(date '+%Y-%m-%d %H:%M:%S')] Redis 连接失败,状态码: ${REDIS_STATUS}" fi COUNT=$((COUNT + 1)) if [ $COUNT -eq $TIMEOUT ]; then - echo "[$(date '+%Y-%m-%d %H:%M:%S')] 错误: Redis 服务在 ${TIMEOUT} 秒内未就绪" - echo "[$(date '+%Y-%m-%d %H:%M:%S')] 最后一次尝试结果: ${REDIS_OUTPUT}" - echo "[$(date '+%Y-%m-%d %H:%M:%S')] 退出等待" + echo "错误: Redis 服务在 ${TIMEOUT} 秒内未就绪" exit 1 fi - echo "[$(date '+%Y-%m-%d %H:%M:%S')] 等待 1 秒后重试..." + echo "等待 Redis 服务... (${COUNT}/${TIMEOUT})" sleep 1 done -echo "[$(date '+%Y-%m-%d %H:%M:%S')] 脚本异常退出" exit 1