Files
baijiahao_text_to_image/start_article_auto_image_matching.sh

78 lines
2.8 KiB
Bash
Raw Normal View History

#!/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