#!/bin/bash set -e # 检查配置文件 if [ ! -f "/app/config/config.yaml" ] || [ ! -f "/app/config/frequency_words.txt" ]; then echo "❌ 配置文件缺失" exit 1 fi # 保存环境变量 env >> /etc/environment case "${RUN_MODE:-cron}" in "once") echo "🔄 单次执行" exec /usr/local/bin/python main.py ;; "cron") # 生成 crontab echo "${CRON_SCHEDULE:-*/30 * * * *} cd /app && /usr/local/bin/python main.py" > /tmp/crontab echo "📅 生成的crontab内容:" cat /tmp/crontab if ! /usr/local/bin/supercronic-linux-amd64 -test /tmp/crontab; then echo "❌ crontab格式验证失败" exit 1 fi # 立即执行一次(如果配置了) if [ "${IMMEDIATE_RUN:-false}" = "true" ]; then echo "▶️ 立即执行一次" /usr/local/bin/python main.py fi echo "⏰ 启动supercronic: ${CRON_SCHEDULE:-*/30 * * * *}" echo "🎯 supercronic 将作为 PID 1 运行" exec /usr/local/bin/supercronic-linux-amd64 -passthrough-logs /tmp/crontab ;; *) exec "$@" ;; esac