fix: OCR 在一键部署时注册 systemd 开机自启

EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-18 00:31:13 +08:00
parent 8cf375d178
commit 2fea777600
7 changed files with 142 additions and 101 deletions
+34 -21
View File
@@ -1,53 +1,66 @@
#!/usr/bin/env bash
# OCR Worker screen 管理(主程序同机部署时使用
# OCR Worker 管理(systemd 开机自启;兼容旧 screen 命令
set -euo pipefail
INSTALL_DIR="${INSTALL_DIR:-/opt/secondary-school-grade-archive}"
# shellcheck source=common.sh
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh"
# shellcheck source=ocr-common.sh
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/ocr-common.sh"
# 最小日志(单独运行时)
if ! declare -F log_info >/dev/null 2>&1; then
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $*"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
log_error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
fi
usage() {
cat <<EOF
用法: bash deploy/ocr-screen.sh <命令>
start 启动 OCR Workerscreen 后台,GPU 常驻
stop 停止 screen 会话
restart 重启
status 查看 screen / health / GPU
attach 进入 screen 终端(Ctrl+A D 退出
start 启动 OCRsystemd,开机自启
stop 停止 OCR
restart 重启 OCR
status 查看服务 / health
enable 仅注册开机自启(不重启
logs 跟踪日志
EOF
}
cmd="${1:-status}"
case "${cmd}" in
start)
start_ocr_screen
start_ocr_service
wait_ocr_healthy || true
show_ocr_status
;;
stop)
stop_ocr_screen
stop_ocr_service
log_info "OCR 已停止"
;;
restart)
stop_ocr_screen
sleep 1
start_ocr_screen
stop_ocr_service
start_ocr_service
wait_ocr_healthy || true
show_ocr_status
;;
status)
show_ocr_status
;;
enable)
setup_ocr_systemd
log_info "已 enable,启动请: bash deploy/ocr-screen.sh start"
;;
logs)
journalctl -u "${OCR_SERVICE_NAME}" -f
;;
attach)
if ocr_screen_running; then
screen -r "${OCR_SCREEN_NAME}"
else
log_error "screen 未运行,请先: bash deploy/ocr-screen.sh start"
exit 1
fi
log_warn "OCR 已改为 systemd,不再使用 screen attach"
log_info "查看日志: journalctl -u ${OCR_SERVICE_NAME} -f"
;;
-h|--help|help)
usage
;;
*)
usage