diff --git a/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml index fdfc034f..86766d7a 100644 --- a/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml +++ b/backend/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml @@ -38,7 +38,7 @@ spring.boot.admin.client: # 增加客户端开关 enabled: true # 设置 Spring Boot Admin Server 地址 - url: http://47.121.125.41:9090/admin + url: http://127.0.0.1:9090/admin instance: service-host-type: IP metadata: diff --git a/backend/start-all-services.sh b/backend/start-all-services.sh deleted file mode 100755 index 1fdfc00c..00000000 --- a/backend/start-all-services.sh +++ /dev/null @@ -1,346 +0,0 @@ -#!/bin/bash -# ============================================================================= -# RuoYi 所有服务统一管理脚本 (CentOS) -# 用途: 统一启动、停止、重启、查看所有RuoYi服务的状态 -# 包含: ruoyi-admin(8080) + ruoyi-monitor-admin(9090) + ruoyi-snailjob-server(8800) -# ============================================================================= - -# 颜色配置 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -CYAN='\033[0;36m' -NC='\033[0m' # No Color - -# 脚本路径配置 -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -ADMIN_SCRIPT="$SCRIPT_DIR/start-ruoyi-admin.sh" -MONITOR_SCRIPT="$SCRIPT_DIR/start-ruoyi-monitor.sh" -SNAILJOB_SCRIPT="$SCRIPT_DIR/start-ruoyi-snailjob.sh" - -# 服务信息配置 -declare -A SERVICES=( - ["admin"]="ruoyi-admin:8080:主应用服务" - ["monitor"]="ruoyi-monitor-admin:9090:监控中心" - ["snailjob"]="ruoyi-snailjob-server:8800:任务调度中心" -) - -# 服务启动顺序(考虑依赖关系) -START_ORDER=("admin" "monitor" "snailjob") -# 服务停止顺序(与启动相反) -STOP_ORDER=("snailjob" "monitor" "admin") - -# 检查脚本文件是否存在 -check_scripts() { - local missing=0 - - if [ ! -f "$ADMIN_SCRIPT" ]; then - echo -e "${RED}错误: 主应用启动脚本不存在: $ADMIN_SCRIPT${NC}" - missing=1 - fi - - if [ ! -f "$MONITOR_SCRIPT" ]; then - echo -e "${RED}错误: 监控服务启动脚本不存在: $MONITOR_SCRIPT${NC}" - missing=1 - fi - - if [ ! -f "$SNAILJOB_SCRIPT" ]; then - echo -e "${RED}错误: 任务调度启动脚本不存在: $SNAILJOB_SCRIPT${NC}" - missing=1 - fi - - if [ $missing -eq 1 ]; then - echo -e "${YELLOW}请确保所有启动脚本都存在并具有执行权限${NC}" - exit 1 - fi - - # 确保脚本有执行权限 - chmod +x "$ADMIN_SCRIPT" "$MONITOR_SCRIPT" "$SNAILJOB_SCRIPT" 2>/dev/null -} - -# 执行单个服务操作 -execute_service_action() { - local service=$1 - local action=$2 - local script="" - - case $service in - "admin") - script="$ADMIN_SCRIPT" - ;; - "monitor") - script="$MONITOR_SCRIPT" - ;; - "snailjob") - script="$SNAILJOB_SCRIPT" - ;; - *) - echo -e "${RED}未知服务: $service${NC}" - return 1 - ;; - esac - - if [ -f "$script" ]; then - echo -e "${CYAN}正在对 $service 执行 $action 操作...${NC}" - "$script" "$action" - return $? - else - echo -e "${RED}脚本文件不存在: $script${NC}" - return 1 - fi -} - -# 启动所有服务 -start_all() { - echo -e "${BLUE}==================== 启动所有RuoYi服务 ====================${NC}" - - check_scripts - - local success=0 - local total=${#START_ORDER[@]} - - for service in "${START_ORDER[@]}"; do - echo - if execute_service_action "$service" "start"; then - ((success++)) - echo -e "${GREEN}✓ $service 启动成功${NC}" - # 服务间启动间隔,确保依赖关系 - if [ "$service" = "admin" ]; then - echo -e "${YELLOW}等待主应用完全启动...${NC}" - sleep 5 - fi - else - echo -e "${RED}✗ $service 启动失败${NC}" - fi - done - - echo - echo -e "${BLUE}==================== 启动结果汇总 ====================${NC}" - echo -e "${GREEN}成功启动: $success/$total 个服务${NC}" - - if [ $success -eq $total ]; then - echo -e "${GREEN}🎉 所有服务启动成功!${NC}" - echo - echo "访问地址:" - echo " - 主应用: http://localhost:8080" - echo " - 监控中心: http://localhost:9090/admin" - echo " - 任务调度: http://localhost:8800/snail-job" - else - echo -e "${YELLOW}⚠️ 部分服务启动失败,请检查日志${NC}" - fi -} - -# 停止所有服务 -stop_all() { - echo -e "${BLUE}==================== 停止所有RuoYi服务 ====================${NC}" - - check_scripts - - local success=0 - local total=${#STOP_ORDER[@]} - - for service in "${STOP_ORDER[@]}"; do - echo - if execute_service_action "$service" "stop"; then - ((success++)) - echo -e "${GREEN}✓ $service 停止成功${NC}" - else - echo -e "${YELLOW}⚠️ $service 停止失败或未运行${NC}" - ((success++)) # 未运行也算成功 - fi - done - - echo - echo -e "${BLUE}==================== 停止结果汇总 ====================${NC}" - echo -e "${GREEN}处理完成: $success/$total 个服务${NC}" - echo -e "${GREEN}🛑 所有服务已停止${NC}" -} - -# 重启所有服务 -restart_all() { - echo -e "${BLUE}==================== 重启所有RuoYi服务 ====================${NC}" - - stop_all - echo -e "${YELLOW}等待系统资源释放...${NC}" - sleep 3 - start_all -} - -# 查看所有服务状态 -status_all() { - echo -e "${BLUE}==================== 所有RuoYi服务状态 ====================${NC}" - - check_scripts - - local running=0 - local total=${#START_ORDER[@]} - - for service in "${START_ORDER[@]}"; do - echo - if execute_service_action "$service" "status"; then - ((running++)) - fi - done - - echo - echo -e "${BLUE}==================== 状态汇总 ====================${NC}" - echo -e "${GREEN}运行中: $running/$total 个服务${NC}" - - # 显示端口占用情况 - echo - echo "端口监听状态:" - netstat -tlnp 2>/dev/null | grep -E ":(8080|9090|8800) " | while IFS= read -r line; do - echo " $line" - done | column -t || echo " 无相关端口监听" -} - -# 查看所有服务日志 -logs_all() { - echo -e "${BLUE}==================== 所有RuoYi服务日志 ====================${NC}" - echo "请选择要查看日志的服务:" - echo " 1) ruoyi-admin (主应用)" - echo " 2) ruoyi-monitor-admin (监控中心)" - echo " 3) ruoyi-snailjob-server (任务调度)" - echo " 4) 查看所有服务的最新日志" - - read -p "请输入选择 (1-4): " choice - - case $choice in - 1) - execute_service_action "admin" "logs" - ;; - 2) - execute_service_action "monitor" "logs" - ;; - 3) - execute_service_action "snailjob" "logs" - ;; - 4) - echo -e "${CYAN}==================== 所有服务最新日志 ====================${NC}" - for service in "${START_ORDER[@]}"; do - echo -e "${YELLOW}--- $service 最新日志 ---${NC}" - case $service in - "admin") - tail -5 /var/log/ruoyi/ruoyi-admin.log 2>/dev/null || echo "日志文件不存在" - ;; - "monitor") - tail -5 /var/log/ruoyi/ruoyi-monitor-admin.log 2>/dev/null || echo "日志文件不存在" - ;; - "snailjob") - tail -5 /var/log/ruoyi/ruoyi-snailjob-server.log 2>/dev/null || echo "日志文件不存在" - ;; - esac - echo - done - ;; - *) - echo -e "${RED}无效选择${NC}" - ;; - esac -} - -# 服务健康检查 -health_check() { - echo -e "${BLUE}==================== 服务健康检查 ====================${NC}" - - local healthy=0 - local total=3 - - # 检查主应用 - echo -n "检查主应用(8080): " - if curl -s --connect-timeout 5 http://localhost:8080 >/dev/null 2>&1; then - echo -e "${GREEN}✓ 健康${NC}" - ((healthy++)) - else - echo -e "${RED}✗ 异常${NC}" - fi - - # 检查监控中心 - echo -n "检查监控中心(9090): " - if curl -s --connect-timeout 5 http://localhost:9090/admin >/dev/null 2>&1; then - echo -e "${GREEN}✓ 健康${NC}" - ((healthy++)) - else - echo -e "${RED}✗ 异常${NC}" - fi - - # 检查任务调度 - echo -n "检查任务调度(8800): " - if curl -s --connect-timeout 5 http://localhost:8800/snail-job >/dev/null 2>&1; then - echo -e "${GREEN}✓ 健康${NC}" - ((healthy++)) - else - echo -e "${RED}✗ 异常${NC}" - fi - - echo - echo -e "${BLUE}健康状态: $healthy/$total 个服务正常${NC}" - - if [ $healthy -eq $total ]; then - echo -e "${GREEN}🎉 所有服务运行正常!${NC}" - else - echo -e "${YELLOW}⚠️ 部分服务异常,建议检查日志${NC}" - fi -} - -# 显示帮助信息 -usage() { - echo -e "${BLUE}RuoYi 所有服务统一管理脚本${NC}" - echo "用法: $0 {start|stop|restart|status|logs|health|help}" - echo "" - echo "命令说明:" - echo " start - 启动所有服务 (按依赖顺序)" - echo " stop - 停止所有服务 (按相反顺序)" - echo " restart - 重启所有服务" - echo " status - 查看所有服务状态" - echo " logs - 交互式查看服务日志" - echo " health - 服务健康检查" - echo " help - 显示此帮助信息" - echo "" - echo "服务清单:" - echo " 1. ruoyi-admin - 主应用服务 (端口:8080)" - echo " 2. ruoyi-monitor-admin - 监控中心 (端口:9090)" - echo " 3. ruoyi-snailjob-server - 任务调度中心 (端口:8800)" - echo "" - echo "启动顺序: admin → monitor → snailjob" - echo "停止顺序: snailjob → monitor → admin" - echo "" - echo "配置路径:" - echo " 脚本目录: $SCRIPT_DIR" - echo " 日志目录: /var/log/ruoyi/" - echo " PID目录: /var/run/" -} - -# 主逻辑 -case "$1" in - start) - start_all - ;; - stop) - stop_all - ;; - restart) - restart_all - ;; - status) - status_all - ;; - logs) - logs_all - ;; - health) - health_check - ;; - help|--help|-h) - usage - ;; - *) - echo -e "${RED}无效参数: $1${NC}" - echo - usage - exit 1 - ;; -esac - -exit 0 diff --git a/backend/start-ruoyi-admin.sh b/backend/start-ruoyi-admin.sh deleted file mode 100755 index e812826e..00000000 --- a/backend/start-ruoyi-admin.sh +++ /dev/null @@ -1,238 +0,0 @@ -#!/bin/bash -# ============================================================================= -# RuoYi Admin 服务启动脚本 (CentOS) -# 用途: 启动、停止、重启、查看状态 ruoyi-admin.jar -# 端口: 8080 (主应用) -# ============================================================================= - -# 配置变量 -APP_NAME="ruoyi-admin" -JAR_NAME="ruoyi-admin.jar" -JAR_PATH="/opt/ruoyi/admin" -JAR_FILE="$JAR_PATH/$JAR_NAME" -PID_FILE="/var/run/${APP_NAME}.pid" -LOG_DIR="/var/log/ruoyi" -LOG_FILE="$LOG_DIR/${APP_NAME}.log" -JVM_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR" -SPRING_PROFILES="prod" - -# 颜色配置 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# 创建必要目录 -create_dirs() { - sudo mkdir -p "$LOG_DIR" - sudo mkdir -p "$(dirname "$PID_FILE")" - sudo chown -R $(whoami):$(whoami) "$LOG_DIR" -} - -# 检查jar文件是否存在 -check_jar() { - if [ ! -f "$JAR_FILE" ]; then - echo -e "${RED}错误: JAR文件不存在: $JAR_FILE${NC}" - echo -e "${YELLOW}请确保已将jar包放置到: $JAR_PATH${NC}" - exit 1 - fi -} - -# 获取进程ID -get_pid() { - if [ -f "$PID_FILE" ]; then - cat "$PID_FILE" - else - ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' - fi -} - -# 检查服务状态 -is_running() { - local pid=$(get_pid) - if [ -n "$pid" ]; then - if ps -p "$pid" > /dev/null 2>&1; then - return 0 - else - # PID文件存在但进程不存在,清理PID文件 - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - return 1 - fi - else - return 1 - fi -} - -# 启动服务 -start() { - echo -e "${BLUE}==================== 启动 $APP_NAME ====================${NC}" - - check_jar - create_dirs - - if is_running; then - local pid=$(get_pid) - echo -e "${YELLOW}$APP_NAME 已经在运行中,PID: $pid${NC}" - return 1 - fi - - echo -e "${GREEN}正在启动 $APP_NAME...${NC}" - echo "JAR文件: $JAR_FILE" - echo "日志文件: $LOG_FILE" - echo "JVM参数: $JVM_OPTS" - echo "Spring环境: $SPRING_PROFILES" - - # 启动应用 - nohup java $JVM_OPTS \ - -jar "$JAR_FILE" \ - --spring.profiles.active="$SPRING_PROFILES" \ - --logging.file.name="$LOG_FILE" \ - > "$LOG_FILE" 2>&1 & - - local pid=$! - echo $pid > "$PID_FILE" - - # 等待启动 - echo -e "${YELLOW}等待应用启动...${NC}" - sleep 3 - - if is_running; then - echo -e "${GREEN}✓ $APP_NAME 启动成功!${NC}" - echo "PID: $(get_pid)" - echo "端口: 8080" - echo "日志: tail -f $LOG_FILE" - echo "访问: http://localhost:8080" - else - echo -e "${RED}✗ $APP_NAME 启动失败!${NC}" - echo "请查看日志: tail -f $LOG_FILE" - exit 1 - fi -} - -# 停止服务 -stop() { - echo -e "${BLUE}==================== 停止 $APP_NAME ====================${NC}" - - if ! is_running; then - echo -e "${YELLOW}$APP_NAME 未运行${NC}" - return 1 - fi - - local pid=$(get_pid) - echo -e "${GREEN}正在停止 $APP_NAME,PID: $pid${NC}" - - # 优雅停止 - kill "$pid" - - # 等待进程停止 - local count=0 - while is_running && [ $count -lt 30 ]; do - sleep 1 - count=$((count + 1)) - echo -n "." - done - echo - - if is_running; then - echo -e "${YELLOW}优雅停止超时,强制终止进程...${NC}" - kill -9 "$pid" - sleep 2 - fi - - if is_running; then - echo -e "${RED}✗ $APP_NAME 停止失败!${NC}" - exit 1 - else - echo -e "${GREEN}✓ $APP_NAME 已停止${NC}" - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - fi -} - -# 重启服务 -restart() { - echo -e "${BLUE}==================== 重启 $APP_NAME ====================${NC}" - stop - sleep 2 - start -} - -# 查看状态 -status() { - echo -e "${BLUE}==================== $APP_NAME 状态 ====================${NC}" - - if is_running; then - local pid=$(get_pid) - echo -e "${GREEN}✓ $APP_NAME 正在运行${NC}" - echo "PID: $pid" - echo "端口: 8080" - echo "内存使用:" - ps -p "$pid" -o pid,ppid,etime,pmem,pcpu,comm --no-headers - echo "网络端口:" - netstat -tlnp 2>/dev/null | grep ":8080 " || echo "端口8080未监听" - else - echo -e "${RED}✗ $APP_NAME 未运行${NC}" - fi - - echo "最近日志:" - if [ -f "$LOG_FILE" ]; then - tail -10 "$LOG_FILE" - else - echo "日志文件不存在: $LOG_FILE" - fi -} - -# 查看日志 -logs() { - echo -e "${BLUE}==================== $APP_NAME 日志 ====================${NC}" - if [ -f "$LOG_FILE" ]; then - tail -f "$LOG_FILE" - else - echo -e "${RED}日志文件不存在: $LOG_FILE${NC}" - fi -} - -# 显示帮助信息 -usage() { - echo -e "${BLUE}RuoYi Admin 服务管理脚本${NC}" - echo "用法: $0 {start|stop|restart|status|logs}" - echo "" - echo "命令说明:" - echo " start - 启动服务" - echo " stop - 停止服务" - echo " restart - 重启服务" - echo " status - 查看状态" - echo " logs - 查看实时日志" - echo "" - echo "配置信息:" - echo " 应用名称: $APP_NAME" - echo " JAR文件: $JAR_FILE" - echo " PID文件: $PID_FILE" - echo " 日志文件: $LOG_FILE" - echo " 服务端口: 8080" -} - -# 主逻辑 -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - restart - ;; - status) - status - ;; - logs) - logs - ;; - *) - usage - exit 1 - ;; -esac - -exit 0 diff --git a/backend/start-ruoyi-monitor.sh b/backend/start-ruoyi-monitor.sh deleted file mode 100755 index 3d6892ce..00000000 --- a/backend/start-ruoyi-monitor.sh +++ /dev/null @@ -1,244 +0,0 @@ -#!/bin/bash -# ============================================================================= -# RuoYi Monitor Admin 监控服务启动脚本 (CentOS) -# 用途: 启动、停止、重启、查看状态 ruoyi-monitor-admin.jar -# 端口: 9090 (监控中心) -# ============================================================================= - -# 配置变量 -APP_NAME="ruoyi-monitor-admin" -JAR_NAME="ruoyi-monitor-admin.jar" -JAR_PATH="/opt/ruoyi/monitor" -JAR_FILE="$JAR_PATH/$JAR_NAME" -PID_FILE="/var/run/${APP_NAME}.pid" -LOG_DIR="/var/log/ruoyi" -LOG_FILE="$LOG_DIR/${APP_NAME}.log" -JVM_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR" -SPRING_PROFILES="prod" - -# 颜色配置 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# 创建必要目录 -create_dirs() { - sudo mkdir -p "$LOG_DIR" - sudo mkdir -p "$(dirname "$PID_FILE")" - sudo chown -R $(whoami):$(whoami) "$LOG_DIR" -} - -# 检查jar文件是否存在 -check_jar() { - if [ ! -f "$JAR_FILE" ]; then - echo -e "${RED}错误: JAR文件不存在: $JAR_FILE${NC}" - echo -e "${YELLOW}请确保已将jar包放置到: $JAR_PATH${NC}" - exit 1 - fi -} - -# 获取进程ID -get_pid() { - if [ -f "$PID_FILE" ]; then - cat "$PID_FILE" - else - ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' - fi -} - -# 检查服务状态 -is_running() { - local pid=$(get_pid) - if [ -n "$pid" ]; then - if ps -p "$pid" > /dev/null 2>&1; then - return 0 - else - # PID文件存在但进程不存在,清理PID文件 - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - return 1 - fi - else - return 1 - fi -} - -# 启动服务 -start() { - echo -e "${BLUE}==================== 启动 $APP_NAME ====================${NC}" - - check_jar - create_dirs - - if is_running; then - local pid=$(get_pid) - echo -e "${YELLOW}$APP_NAME 已经在运行中,PID: $pid${NC}" - return 1 - fi - - echo -e "${GREEN}正在启动 $APP_NAME...${NC}" - echo "JAR文件: $JAR_FILE" - echo "日志文件: $LOG_FILE" - echo "JVM参数: $JVM_OPTS" - echo "Spring环境: $SPRING_PROFILES" - - # 启动应用 - nohup java $JVM_OPTS \ - -jar "$JAR_FILE" \ - --spring.profiles.active="$SPRING_PROFILES" \ - --logging.file.name="$LOG_FILE" \ - > "$LOG_FILE" 2>&1 & - - local pid=$! - echo $pid > "$PID_FILE" - - # 等待启动 - echo -e "${YELLOW}等待应用启动...${NC}" - sleep 3 - - if is_running; then - echo -e "${GREEN}✓ $APP_NAME 启动成功!${NC}" - echo "PID: $(get_pid)" - echo "端口: 9090" - echo "日志: tail -f $LOG_FILE" - echo "访问: http://localhost:9090/admin" - echo "说明: 这是Spring Boot Admin监控中心" - else - echo -e "${RED}✗ $APP_NAME 启动失败!${NC}" - echo "请查看日志: tail -f $LOG_FILE" - exit 1 - fi -} - -# 停止服务 -stop() { - echo -e "${BLUE}==================== 停止 $APP_NAME ====================${NC}" - - if ! is_running; then - echo -e "${YELLOW}$APP_NAME 未运行${NC}" - return 1 - fi - - local pid=$(get_pid) - echo -e "${GREEN}正在停止 $APP_NAME,PID: $pid${NC}" - - # 优雅停止 - kill "$pid" - - # 等待进程停止 - local count=0 - while is_running && [ $count -lt 30 ]; do - sleep 1 - count=$((count + 1)) - echo -n "." - done - echo - - if is_running; then - echo -e "${YELLOW}优雅停止超时,强制终止进程...${NC}" - kill -9 "$pid" - sleep 2 - fi - - if is_running; then - echo -e "${RED}✗ $APP_NAME 停止失败!${NC}" - exit 1 - else - echo -e "${GREEN}✓ $APP_NAME 已停止${NC}" - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - fi -} - -# 重启服务 -restart() { - echo -e "${BLUE}==================== 重启 $APP_NAME ====================${NC}" - stop - sleep 2 - start -} - -# 查看状态 -status() { - echo -e "${BLUE}==================== $APP_NAME 状态 ====================${NC}" - - if is_running; then - local pid=$(get_pid) - echo -e "${GREEN}✓ $APP_NAME 正在运行${NC}" - echo "PID: $pid" - echo "端口: 9090" - echo "内存使用:" - ps -p "$pid" -o pid,ppid,etime,pmem,pcpu,comm --no-headers - echo "网络端口:" - netstat -tlnp 2>/dev/null | grep ":9090 " || echo "端口9090未监听" - else - echo -e "${RED}✗ $APP_NAME 未运行${NC}" - fi - - echo "最近日志:" - if [ -f "$LOG_FILE" ]; then - tail -10 "$LOG_FILE" - else - echo "日志文件不存在: $LOG_FILE" - fi -} - -# 查看日志 -logs() { - echo -e "${BLUE}==================== $APP_NAME 日志 ====================${NC}" - if [ -f "$LOG_FILE" ]; then - tail -f "$LOG_FILE" - else - echo -e "${RED}日志文件不存在: $LOG_FILE${NC}" - fi -} - -# 显示帮助信息 -usage() { - echo -e "${BLUE}RuoYi Monitor Admin 监控服务管理脚本${NC}" - echo "用法: $0 {start|stop|restart|status|logs}" - echo "" - echo "命令说明:" - echo " start - 启动服务" - echo " stop - 停止服务" - echo " restart - 重启服务" - echo " status - 查看状态" - echo " logs - 查看实时日志" - echo "" - echo "配置信息:" - echo " 应用名称: $APP_NAME" - echo " JAR文件: $JAR_FILE" - echo " PID文件: $PID_FILE" - echo " 日志文件: $LOG_FILE" - echo " 服务端口: 9090" - echo " 访问地址: http://localhost:9090/admin" - echo "" - echo "服务说明:" - echo " 这是Spring Boot Admin监控中心,用于监控主应用的运行状态" - echo " 需要在主应用启动后再启动此服务" -} - -# 主逻辑 -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - restart - ;; - status) - status - ;; - logs) - logs - ;; - *) - usage - exit 1 - ;; -esac - -exit 0 diff --git a/backend/start-ruoyi-snailjob.sh b/backend/start-ruoyi-snailjob.sh deleted file mode 100755 index 4c9cb573..00000000 --- a/backend/start-ruoyi-snailjob.sh +++ /dev/null @@ -1,245 +0,0 @@ -#!/bin/bash -# ============================================================================= -# RuoYi SnailJob Server 任务调度服务启动脚本 (CentOS) -# 用途: 启动、停止、重启、查看状态 ruoyi-snailjob-server.jar -# 端口: 8800 (任务调度中心) -# ============================================================================= - -# 配置变量 -APP_NAME="ruoyi-snailjob-server" -JAR_NAME="ruoyi-snailjob-server.jar" -JAR_PATH="/opt/ruoyi/snailjob" -JAR_FILE="$JAR_PATH/$JAR_NAME" -PID_FILE="/var/run/${APP_NAME}.pid" -LOG_DIR="/var/log/ruoyi" -LOG_FILE="$LOG_DIR/${APP_NAME}.log" -JVM_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR" -SPRING_PROFILES="prod" - -# 颜色配置 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -# 创建必要目录 -create_dirs() { - sudo mkdir -p "$LOG_DIR" - sudo mkdir -p "$(dirname "$PID_FILE")" - sudo chown -R $(whoami):$(whoami) "$LOG_DIR" -} - -# 检查jar文件是否存在 -check_jar() { - if [ ! -f "$JAR_FILE" ]; then - echo -e "${RED}错误: JAR文件不存在: $JAR_FILE${NC}" - echo -e "${YELLOW}请确保已将jar包放置到: $JAR_PATH${NC}" - exit 1 - fi -} - -# 获取进程ID -get_pid() { - if [ -f "$PID_FILE" ]; then - cat "$PID_FILE" - else - ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' - fi -} - -# 检查服务状态 -is_running() { - local pid=$(get_pid) - if [ -n "$pid" ]; then - if ps -p "$pid" > /dev/null 2>&1; then - return 0 - else - # PID文件存在但进程不存在,清理PID文件 - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - return 1 - fi - else - return 1 - fi -} - -# 启动服务 -start() { - echo -e "${BLUE}==================== 启动 $APP_NAME ====================${NC}" - - check_jar - create_dirs - - if is_running; then - local pid=$(get_pid) - echo -e "${YELLOW}$APP_NAME 已经在运行中,PID: $pid${NC}" - return 1 - fi - - echo -e "${GREEN}正在启动 $APP_NAME...${NC}" - echo "JAR文件: $JAR_FILE" - echo "日志文件: $LOG_FILE" - echo "JVM参数: $JVM_OPTS" - echo "Spring环境: $SPRING_PROFILES" - - # 启动应用 - nohup java $JVM_OPTS \ - -jar "$JAR_FILE" \ - --spring.profiles.active="$SPRING_PROFILES" \ - --logging.file.name="$LOG_FILE" \ - > "$LOG_FILE" 2>&1 & - - local pid=$! - echo $pid > "$PID_FILE" - - # 等待启动 - echo -e "${YELLOW}等待应用启动...${NC}" - sleep 3 - - if is_running; then - echo -e "${GREEN}✓ $APP_NAME 启动成功!${NC}" - echo "PID: $(get_pid)" - echo "端口: 8800" - echo "日志: tail -f $LOG_FILE" - echo "访问: http://localhost:8800/snail-job" - echo "说明: 这是SnailJob分布式任务调度中心" - else - echo -e "${RED}✗ $APP_NAME 启动失败!${NC}" - echo "请查看日志: tail -f $LOG_FILE" - exit 1 - fi -} - -# 停止服务 -stop() { - echo -e "${BLUE}==================== 停止 $APP_NAME ====================${NC}" - - if ! is_running; then - echo -e "${YELLOW}$APP_NAME 未运行${NC}" - return 1 - fi - - local pid=$(get_pid) - echo -e "${GREEN}正在停止 $APP_NAME,PID: $pid${NC}" - - # 优雅停止 - kill "$pid" - - # 等待进程停止 - local count=0 - while is_running && [ $count -lt 30 ]; do - sleep 1 - count=$((count + 1)) - echo -n "." - done - echo - - if is_running; then - echo -e "${YELLOW}优雅停止超时,强制终止进程...${NC}" - kill -9 "$pid" - sleep 2 - fi - - if is_running; then - echo -e "${RED}✗ $APP_NAME 停止失败!${NC}" - exit 1 - else - echo -e "${GREEN}✓ $APP_NAME 已停止${NC}" - [ -f "$PID_FILE" ] && rm -f "$PID_FILE" - fi -} - -# 重启服务 -restart() { - echo -e "${BLUE}==================== 重启 $APP_NAME ====================${NC}" - stop - sleep 2 - start -} - -# 查看状态 -status() { - echo -e "${BLUE}==================== $APP_NAME 状态 ====================${NC}" - - if is_running; then - local pid=$(get_pid) - echo -e "${GREEN}✓ $APP_NAME 正在运行${NC}" - echo "PID: $pid" - echo "端口: 8800" - echo "内存使用:" - ps -p "$pid" -o pid,ppid,etime,pmem,pcpu,comm --no-headers - echo "网络端口:" - netstat -tlnp 2>/dev/null | grep ":8800 " || echo "端口8800未监听" - else - echo -e "${RED}✗ $APP_NAME 未运行${NC}" - fi - - echo "最近日志:" - if [ -f "$LOG_FILE" ]; then - tail -10 "$LOG_FILE" - else - echo "日志文件不存在: $LOG_FILE" - fi -} - -# 查看日志 -logs() { - echo -e "${BLUE}==================== $APP_NAME 日志 ====================${NC}" - if [ -f "$LOG_FILE" ]; then - tail -f "$LOG_FILE" - else - echo -e "${RED}日志文件不存在: $LOG_FILE${NC}" - fi -} - -# 显示帮助信息 -usage() { - echo -e "${BLUE}RuoYi SnailJob Server 任务调度服务管理脚本${NC}" - echo "用法: $0 {start|stop|restart|status|logs}" - echo "" - echo "命令说明:" - echo " start - 启动服务" - echo " stop - 停止服务" - echo " restart - 重启服务" - echo " status - 查看状态" - echo " logs - 查看实时日志" - echo "" - echo "配置信息:" - echo " 应用名称: $APP_NAME" - echo " JAR文件: $JAR_FILE" - echo " PID文件: $PID_FILE" - echo " 日志文件: $LOG_FILE" - echo " 服务端口: 8800" - echo " 访问地址: http://localhost:8800/snail-job" - echo "" - echo "服务说明:" - echo " 这是SnailJob分布式任务调度中心,用于管理和调度定时任务" - echo " 提供任务执行、监控、日志查看等功能" - echo " 可以独立于主应用运行" -} - -# 主逻辑 -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - restart - ;; - status) - status - ;; - logs) - logs - ;; - *) - usage - exit 1 - ;; -esac - -exit 0