You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写循环检测tardis服务状态直至达标或达到次数上限

Tardis服务状态检测循环脚本

补丁更新后需验证Tardis服务是否正常运行,由于curl localhost:10100/status命令无论服务状态如何都会返回退出码0,因此需要通过返回的JSON内容判断服务状态——正常状态的JSON必须包含"description":"Tardis service is fully functional."和"name":"Running"。以下是带重试次数限制的检测循环脚本:

Bash实现示例

#!/bin/bash

# 可配置参数
MAX_RETRIES=10          # 最大重试次数
RETRY_INTERVAL=5        # 每次重试间隔(秒)
STATUS_ENDPOINT="http://localhost:10100/status"

retry_count=0

while [ $retry_count -lt $MAX_RETRIES ]; do
    # 获取服务状态响应
    status_response=$(curl -s "$STATUS_ENDPOINT")
    
    # 检查响应中是否包含两个正常状态标识
    if echo "$status_response" | grep -q '"description":"Tardis service is fully functional."' && \
       echo "$status_response" | grep -q '"name":"Running"'; then
        echo "✅ Tardis服务已恢复正常运行"
        exit 0
    fi
    
    # 重试计数递增,提示当前状态
    retry_count=$((retry_count + 1))
    echo "⚠️ Tardis服务状态异常,正在重试 ($retry_count/$MAX_RETRIES)"
    sleep $RETRY_INTERVAL
done

# 达到最大重试次数仍未恢复
echo "❌ 已达到最大重试次数,Tardis服务未恢复正常"
exit 1

脚本说明

  • 可根据实际需求调整MAX_RETRIES(最大重试次数)和RETRY_INTERVAL(重试间隔)
  • 使用curl -s静默获取响应,避免多余输出干扰判断
  • 通过grep -q静默检查JSON中的关键字段,确保两个条件同时满足才判定服务正常
  • 脚本最终返回对应退出码,方便集成到自动化部署流程中做后续判断

内容的提问来源于stack exchange,提问作者Andres Trujillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:35:22