check_update.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/sh
  2. # 加载公共函数库
  3. . /app/common.sh
  4. echo "[定时更新] $(date) 开始检测新版本..."
  5. # 获取最新版本号
  6. ftag_name=$(get_latest_version)
  7. if [ -z "$ftag_name" ]; then
  8. echo "[定时更新] 无法获取最新版本号"
  9. exit 0
  10. fi
  11. echo "[定时更新] 最新版本: ${ftag_name}"
  12. # 读取当前版本
  13. current_version=$(get_current_version)
  14. echo "[定时更新] 当前版本: ${current_version}"
  15. if [ "$current_version" = "$ftag_name" ]; then
  16. echo "[定时更新] 已是最新版本,无需更新"
  17. exit 0
  18. fi
  19. echo "[定时更新] 发现新版本,开始下载..."
  20. if download_version "$ftag_name" "$MIXAPI_NEW"; then
  21. echo "[定时更新] 下载完成,准备热更新..."
  22. # 查找并停止旧进程
  23. OLD_PID=$(find_mixapi_pid)
  24. if [ -n "$OLD_PID" ]; then
  25. echo "[定时更新] 停止旧版本进程 (PID: $OLD_PID)..."
  26. kill "$OLD_PID"
  27. sleep 2
  28. fi
  29. # 替换二进制文件
  30. mv "$MIXAPI_NEW" "$MIXAPI_BIN"
  31. save_version "$ftag_name"
  32. echo "[定时更新] 启动新版本..."
  33. "$MIXAPI_BIN" &
  34. echo "[定时更新] 新版本已启动 (PID: $!)"
  35. else
  36. echo "[定时更新] 下载失败"
  37. fi