Spaces:
Running
Running
set -eo pipefail | |
# 导入环境变量 | |
# source /home/pn/.env | |
# 错误处理函数 | |
handle_error() { | |
echo "错误发生在第 $1 行" | |
exit 1 | |
} | |
trap 'handle_error $LINENO' ERR | |
# 超时处理函数 | |
timeout_handler() { | |
echo "操作超时" | |
exit 1 | |
} | |
# 等待服务就绪的通用函数 | |
wait_for_service() { | |
local service=$1 | |
local host=$2 | |
local port=$3 | |
local timeout=${4:-$WAIT_TIMEOUT} | |
echo "等待 $service 就绪..." | |
local end=$((SECONDS + timeout)) | |
while [ $SECONDS -lt $end ]; do | |
if nc -z "$host" "$port" >/dev/null 2>&1; then | |
echo "$service 已就绪" | |
return 0 | |
fi | |
echo "尝试连接 $service at $host:$port..." | |
sleep 1 | |
done | |
echo "$service 启动超时" | |
exit 1 | |
} | |
# 检查服务状态 | |
check_services() { | |
echo "检查服务状态..." | |
# 检查 Redis | |
echo "Redis 状态:" | |
redis-cli info | grep 'used_memory\|connected_clients\|total_connections_received' | |
# 检查 Qdrant | |
echo "Qdrant 状态:" | |
if curl -s http://localhost:6333/metrics >/dev/null; then | |
echo "Qdrant 运行正常" | |
curl -s http://localhost:6333/metrics | |
# 显示集合信息 | |
echo "Qdrant 集合列表:" | |
curl -s http://localhost:6333/collections | |
else | |
echo "Qdrant 服务异常" | |
tail -n 10 /home/pn/.n8n/qdrant/qdrant.log | |
fi | |
} | |
# 主流程 | |
main() { | |
current_time=$(date +"%Y-%m-%d %H:%M:%S") | |
echo "Starting services at $current_time" | |
# 启动服务 | |
wait_for_service "PostgreSQL" "${DB_POSTGRESDB_HOST}" "${DB_POSTGRESDB_PORT}" | |
echo "" | |
check_services | |
echo "Starting deepseek-free-api... " | |
exec node /home/pn/deepseek-free-api/dist/index.js | |
} | |
# 执行主流程 | |
main "$@" | |