fix: OCR 在一键部署时注册 systemd 开机自启
EOF Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+34
-21
@@ -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 Worker(screen 后台,GPU 常驻)
|
||||
stop 停止 screen 会话
|
||||
restart 重启
|
||||
status 查看 screen / health / GPU
|
||||
attach 进入 screen 终端(Ctrl+A D 退出)
|
||||
|
||||
start 启动 OCR(systemd,开机自启)
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user