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应用程序的自动重启策略。这种方式不仅可以在程序崩溃时自动重启,还可以确保在系统重启后自动启动服务。

相关推荐
SamDeepThinking6 小时前
在 Cursor IDE 中配置 SQLTools 连接 MySQL 数据库指南(Windows 11)
后端·ai编程·cursor
聆风吟º6 小时前
【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.
spring boot·笔记·技术干货
武子康6 小时前
大数据-92 Spark 深入解析 Spark Standalone 模式:组件构成、提交流程与性能优化
大数据·后端·spark
青梅主码6 小时前
麦肯锡最新发布报告《想打破生产力天花板吗?重新思考完成工作的方式》:与其一味调整组织结构,不如从根本上简化工作流程,释放更大价值
后端
Python私教6 小时前
源滚滚Rust全栈班v1.02 无符号整数详解
开发语言·后端·rust
一叶飘零_sweeeet6 小时前
SpringBoot 数据脱敏实战: 构建企业级敏感信息保护体系
java·spring boot·数据安全
绝无仅有7 小时前
面试总结之Nginx 经验常见问题汇总第二篇
后端·面试·github
这里有鱼汤7 小时前
分享7种常见的量化交易策略
后端
绝无仅有7 小时前
面试实战总结之Nginx配置经验第一篇
后端·面试·github
shark_chili7 小时前
CPU性能优化三剑客:分支预测、并行运算与超线程技术深度解析
后端