当前位置: 首页 > article >正文

ubuntu24 springboot jar设置宕机重启

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

使用 systemd 设置自动重启

  1. 创建 systemd 服务文件

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

    sudo nano /etc/systemd/system/myapp.service
    
  2. 编辑服务文件

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

    [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重新加载配置,并启用该服务以便于开机自启。

    sudo systemctl daemon-reload
    sudo systemctl enable myapp.service
    
  4. 启动服务

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

    sudo systemctl start myapp.service
    
  5. 检查服务状态

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

    sudo systemctl status myapp.service
    
  6. 查看日志(如果配置了)

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

    cat /var/log/myapp/output.log
    cat /var/log/myapp/error.log
    
  7. 停止服务

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

    sudo systemctl stop myapp.service
    

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


http://www.kler.cn/a/513723.html

相关文章:

  • 【二叉树的深搜】计算布尔二叉树的值 求根节点到叶节点数字之和
  • leetcode 面试经典 150 题:插入区间
  • 包文件分析器 Webpack Bundle Analyzer
  • QT多语言Demo及心得
  • 线程池 | java中的多线程
  • 学习第七十四行
  • 【2024年华为OD机试】(C/D卷,200分)- 5G网络建设 (JavaScriptJava PythonC/C++)
  • Qt中自定义信号与槽
  • JAVA基础语句整理
  • 【JsonPath】JsonPath常用示例
  • Linux和Windows系统之间实现文件共享
  • 【STL】list 双向循环链表的使用介绍
  • 后盾人JS -- Set与WeakSet类型在JavaScript中的使用
  • 《鸿蒙Next原生应用的独特用户体验之旅》
  • PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10
  • UDP/TCP ②-三次握手 || 四次挥手 || 确认应答 || 超时重传
  • Single-Model and Any-Modality for Video Object Tracking——2024——cvpr-阅读笔记
  • 深入解析迁移学习:Transfer Learning模型介绍
  • Spring AI SafeGuardAdvisor
  • JSqlParser:Java SQL 解析利器
  • Codeforces Round 998 (Div. 3)(部分题解)
  • sql:权限管理、存储过程、视图、触发器
  • 从零搭建一套远程手机的桌面操控和文件传输的小工具
  • 小土堆学习笔记10(利用GPU训练于模型验证)
  • 【论文复现】基于改进鲸鱼优化算法的太阳能光伏模型参数提取问题
  • 嵌入式Linux驱动开发之从设备树到点亮LED