| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env bash
- #
- # DataOps Platform 重启脚本(Supervisor + dataops.env)
- #
- set -euo pipefail
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- # shellcheck source=dataops-common.sh
- source "${SCRIPT_DIR}/dataops-common.sh"
- restart_app() {
- echo_info "正在重启 ${APP_NAME}..."
- supervisorctl restart "${APP_NAME}"
- sleep 8
- local status
- status="$(supervisorctl status "${APP_NAME}" | awk '{print $2}')"
- if [[ "${status}" == "RUNNING" ]]; then
- echo_info "${APP_NAME} 重启成功"
- supervisorctl status "${APP_NAME}"
- else
- echo_error "${APP_NAME} 重启失败,状态: ${status}"
- echo_info "查看日志: tail -f ${SUPERVISOR_LOG}"
- exit 1
- fi
- }
- main() {
- echo "=========================================="
- echo " DataOps Platform 重启脚本"
- echo "=========================================="
- if [[ "${EUID}" -ne 0 ]]; then
- echo_error "请使用 sudo 运行此脚本"
- exit 1
- fi
- check_env_file
- load_env_file
- check_venv
- check_run_script
- check_supervisor
- ensure_gunicorn_config "${SCRIPT_DIR}"
- ensure_run_script
- configure_supervisor
- restart_app
- if ! health_check; then
- echo_error "重启完成但服务未就绪,请查看上方诊断日志"
- exit 1
- fi
- local app_port
- app_port="$(resolve_listen_port)"
- echo ""
- echo_info "重启完成"
- echo_info "访问: http://127.0.0.1:${app_port}/api/system/health"
- }
- main "$@"
|