若依应用进程守护脚本

RuoYi Watchdog Script

Posted by byron han on April 27, 2026

本文首次发布于 Byron Han Blog, 作者 @han(Byron Han) ,转载请保留原文链接.

背景

若依(RuoYi)后端服务以 ruoyi-admin.jar 方式运行,偶尔会因为内存不足等原因意外停止。通过 crontab 定时检测并自动重启,实现进程守护。

守护脚本

创建脚本 /usr/local/app/backed/check_ruoyi.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
APP_NAME="ruoyi-admin.jar"
APP_DIR="/usr/local/app/backed"
LOG="${APP_DIR}/logs/watchdog.log"

log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG"; }

if pgrep -f "$APP_NAME" > /dev/null 2>&1; then
    log "OK: $APP_NAME 运行中"
else
    log "WARN: $APP_NAME 未运行,重启中..."
    cd "$APP_DIR" && ./ry.sh restart >> "$LOG" 2>&1
    sleep 10
    if pgrep -f "$APP_NAME" > /dev/null 2>&1; then
        log "SUCCESS: 重启成功"
    else
        log "ERROR: 重启失败"
    fi
fi

部署步骤

1. 创建脚本文件

将上述脚本保存到目标路径。

2. 赋予执行权限

1
chmod +x /usr/local/app/backed/check_ruoyi.sh

3. 配置 crontab 定时任务

每 5 分钟执行一次检测:

1
(crontab -l 2>/dev/null; echo "*/5 * * * * /bin/bash /usr/local/app/backed/check_ruoyi.sh") | crontab -

4. 验证定时任务

1
crontab -l

日志

所有检测和重启记录写入 ${APP_DIR}/logs/watchdog.log,格式如下:

1
2
3
[2026-04-27 10:00:01] OK: ruoyi-admin.jar 运行中
[2026-04-27 10:05:01] WARN: ruoyi-admin.jar 未运行,重启中...
[2026-04-27 10:05:11] SUCCESS: 重启成功