#!/bin/bash # 文章图片智能匹配脚本启动器 # 用途:启动文章与图片自动匹配、生成图片的后台服务 # 获取脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # 日志文件路径 LOG_DIR="$SCRIPT_DIR/logs" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") LOG_FILE="$LOG_DIR/start_${TIMESTAMP}.log" # 确保日志目录存在 mkdir -p "$LOG_DIR" echo "========================================" | tee -a "$LOG_FILE" echo "启动时间: $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$LOG_FILE" echo "工作目录: $SCRIPT_DIR" | tee -a "$LOG_FILE" echo "========================================" | tee -a "$LOG_FILE" # 检查Python虚拟环境 VENV_PATH="/home/work/keyword_crawl/venv" if [ -d "$VENV_PATH" ]; then echo "[信息] 检测到虚拟环境: $VENV_PATH" | tee -a "$LOG_FILE" source "$VENV_PATH/bin/activate" echo "[信息] 虚拟环境已激活" | tee -a "$LOG_FILE" else echo "[警告] 未找到虚拟环境,使用系统Python" | tee -a "$LOG_FILE" fi # 显示Python版本 echo "[信息] Python版本: $(python --version 2>&1)" | tee -a "$LOG_FILE" echo "[信息] Python路径: $(which python)" | tee -a "$LOG_FILE" # 检查主脚本文件是否存在 MAIN_SCRIPT="$SCRIPT_DIR/article_auto_image_matching.py" if [ ! -f "$MAIN_SCRIPT" ]; then echo "[错误] 未找到主脚本: $MAIN_SCRIPT" | tee -a "$LOG_FILE" exit 1 fi echo "[信息] 主脚本: $MAIN_SCRIPT" | tee -a "$LOG_FILE" # 检查中文字体是否已安装 echo "[信息] 检查中文字体..." | tee -a "$LOG_FILE" if command -v fc-list &> /dev/null; then FONT_COUNT=$(fc-list :lang=zh 2>/dev/null | wc -l) if [ "$FONT_COUNT" -gt 0 ]; then echo "[信息] 检测到 $FONT_COUNT 个中文字体" | tee -a "$LOG_FILE" else echo "[警告] 未检测到中文字体,压字花功能可能无法使用" | tee -a "$LOG_FILE" echo "[提示] Ubuntu/Debian: sudo apt-get install fonts-wqy-zenhei" | tee -a "$LOG_FILE" echo "[提示] CentOS/RHEL: sudo yum install wqy-zenhei-fonts" | tee -a "$LOG_FILE" fi else echo "[警告] 无法检测字体(fc-list命令不存在)" | tee -a "$LOG_FILE" fi echo "========================================" | tee -a "$LOG_FILE" echo "[启动] 正在启动文章图片智能匹配服务..." | tee -a "$LOG_FILE" echo "========================================" | tee -a "$LOG_FILE" # 启动主脚本 python "$MAIN_SCRIPT" 2>&1 | tee -a "$LOG_FILE" # 获取退出状态码 EXIT_CODE=$? echo "========================================" | tee -a "$LOG_FILE" echo "结束时间: $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$LOG_FILE" echo "退出状态码: $EXIT_CODE" | tee -a "$LOG_FILE" echo "========================================" | tee -a "$LOG_FILE" # 退出 exit $EXIT_CODE