ubuntu24 springboot jar设置宕机重启

在Ubuntu 24上为Spring Boot JAR包设置宕机重启策略,使用systemd是推荐的方法。以下是如何配置的详细步骤:

使用 systemd 设置自动重启

  1. 创建 systemd 服务文件

    首先,你需要创建一个systemd服务文件来管理你的Spring Boot应用。你可以使用文本编辑器如nanovim来创建和编辑这个文件。例如,如果你的应用名为myapp.jar,你可以创建一个名为myapp.service的服务文件。

    bash 复制代码
    sudo nano /etc/systemd/system/myapp.service
  2. 编辑服务文件

    在文件中添加如下内容,确保路径和用户名根据实际情况修改:

    ini 复制代码
    [Unit]
    Description=My Spring Boot Application
    After=syslog.target
    
    [Service]
    User=your_user
    ExecStart=/usr/bin/java -jar /path/to/your/myapp.jar
    SuccessExitStatus=143
    Restart=on-failure
    RestartSec=10s
    Environment=SPRING_PROFILES_ACTIVE=prod
    # 如果需要输出日志到特定文件,可以取消下面这行的注释并修改路径
    # StandardOutput=file:/var/log/myapp/output.log
    # StandardError=file:/var/log/myapp/error.log
    
    [Install]
    WantedBy=multi-user.target

    解释:

    • User=your_user:指定运行此服务的用户。
    • ExecStart:启动命令,指向你打包好的Spring Boot应用JAR文件。
    • Restart=on-failure:当服务失败时自动重启。也可以设置为always,即无论什么原因退出都重启。
    • RestartSec=10s:设定重启前等待的时间。
    • Environment:可以设置环境变量,比如激活不同的配置文件。
  3. 重载 systemd 并启用服务

    创建完服务文件后,需要让systemd重新加载配置,并启用该服务以便于开机自启。

    bash 复制代码
    sudo systemctl daemon-reload
    sudo systemctl enable myapp.service
  4. 启动服务

    现在你可以尝试启动服务了。

    bash 复制代码
    sudo systemctl start myapp.service
  5. 检查服务状态

    使用下面的命令来检查服务的状态,确认它是否正在运行以及是否有任何错误信息。

    bash 复制代码
    sudo systemctl status myapp.service
  6. 查看日志(如果配置了)

    如果你在服务文件中配置了日志输出,可以通过查看日志文件来获取更多信息。

    bash 复制代码
    cat /var/log/myapp/output.log
    cat /var/log/myapp/error.log
  7. 停止服务

    如果需要停止服务,可以使用:

    bash 复制代码
    sudo systemctl stop myapp.service

通过以上步骤,你应该能够在Ubuntu 24系统上成功配置一个Spring Boot应用程序的自动重启策略。这种方式不仅可以在程序崩溃时自动重启,还可以确保在系统重启后自动启动服务。

相关推荐
愿你天黑有灯下雨有伞8 分钟前
告别复杂配置!Spring Boot优雅集成百度OCR的终极方案
spring boot·百度·ocr
武子康4 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
舒一笑5 小时前
我的开源项目-PandaCoder迎来史诗级大更新啦
后端·程序员·intellij idea
@昵称不存在6 小时前
Flask input 和datalist结合
后端·python·flask
zhuyasen6 小时前
Go 分布式任务和定时任务太难?sasynq 让异步任务从未如此简单
后端·go
东林牧之6 小时前
Django+celery异步:拿来即用,可移植性高
后端·python·django
超浪的晨7 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
AntBlack7 小时前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉
Pomelo_刘金8 小时前
Clean Architecture 整洁架构:借一只闹钟讲明白「整洁架构」的来龙去脉
后端·架构·rust
双力臂4048 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试