You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS EC2运行Java Jar 解决日志轮转与PM2异常重启问题

AWS EC2 运行Java Jar文件可行方案

方案1:nohup 配合系统原生logrotate实现无停机日志轮转

该方案无需额外安装第三方进程管理工具,完全满足150MB自动轮转、轮转全程不停止应用的要求。

  1. 启动应用时统一重定向标准输出、错误输出到固定日志路径:
mkdir -p /var/log/myapp
nohup java -jar myfilename.jar > /var/log/myapp/output.log 2>&1 &
  1. 配置logrotate轮转规则,在/etc/logrotate.d/目录下新建名为myapp的配置文件:
/var/log/myapp/output.log {
    size 150M
    rotate 10
    copytruncate
    compress
    delaycompress
    missingok
    notifempty
    dateext
}

配置参数说明:

  • size 150M:单日志文件达到150MB时自动触发轮转
  • copytruncate:核心配置,轮转时先将当前日志内容拷贝至备份文件,再清空原日志文件,整个过程不需要重启Java进程,无服务中断
  • rotate 10:最多保留10份历史轮转日志,可根据磁盘容量自行调整
  • compress:历史日志自动gzip压缩,节省存储空间
    配置完成后无需手动重启服务,系统默认每日定时执行logrotate扫描规则,可执行logrotate -f /etc/logrotate.d/myapp手动触发测试,测试过程中应用不会停止。

方案2:修复PM2配置,解决非预期自动重启问题

之前PM2频繁自动重启的核心原因是配置中开启了watch文件监听,只要监听的Jar包出现访问时间变动、文件覆盖等操作,PM2就会自动重启进程。修正配置即可关闭非预期重启逻辑,同时支持按大小轮转日志。

  1. 替换原有process.json配置为以下内容:
{
    "apps":[
    {
        "name": "my-backend-api",
        "cwd":"/home/ubuntu/my-backend",
        "script":"/usr/bin/java",
        "args":[
            "-jar",
            "/home/ubuntu/my-backend/target/my-api-0.0.1-SNAPSHOT.jar"
        ],
        "watch": false,
        "autorestart": false,
        "max_restarts": 0,
        "log_date_format":"YYYY-MM-DD HH:mm Z",
        "exec_interpreter":"",
        "exec_mode":"fork",
        "out_file": "/var/log/myapp/out.log",
        "error_file": "/var/log/myapp/err.log",
        "merge_logs": true
    }
   ]
}

核心改动点:

  • 将watch字段从监听Jar路径改为false,彻底关闭文件变动触发的自动重启
  • 新增autorestart: false、max_restarts: 0配置,关闭进程异常退出后的自动拉起逻辑,完全避免非预期重启
  • 补充固定日志路径配置,统一管理输出日志
  1. 配置PM2日志轮转,执行以下命令安装轮转模块并设置150MB阈值:
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 150M
pm2 set pm2-logrotate:retain 10
pm2 set pm2-logrotate:compress true

PM2日志轮转过程不会重启业务进程,满足不停止应用的要求。配置完成后执行pm2 start process.json启动即可。


内容的提问来源于stack exchange,提问作者Atique Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:03:31