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

ubuntu24 springboot jar设置宕机重启

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

使用systemd设置自动重启

创建systemd服务文件

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

sudo vi /etc/systemd/system/myapp.service

编辑服务文件

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

[Unit]
Description=My Spring Boot Application
After=network.target

[Service]
User=root
ExecStart=java -jar /home/app/parkservice/api/park-service-admin.jar --spring.profiles.active=zhsit
SuccessExitStatus=143
# Restart=on-failure
# RestartSec=10s
# ExecStart如果已有当前配置则注释
# 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:可以设置环境变量,比如激活不同的配置文件。
重载systemd并启用服务
创建完服务文件后,需要让systemd重新加载配置,并启用该服务以便于开机自启。

sudo systemctl daemon-reload
sudo systemctl enable myapp.service

启动服务

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

sudo systemctl start myapp.service

检查服务状态

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

sudo systemctl status myapp.service

查看日志(如果配置了)

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

cat /var/log/myapp/output.log
cat /var/log/myapp/error.log

实时查看

tail -f /var/log/myapp/output.log
tail -f /var/log/myapp/error.log

停止服务

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

sudo systemctl stop myapp.service

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

相关文章:

  • App接入图表:MPAndroidChart,如何创建柱状图、双柱状图以及折线图
  • Python的顺序结构和循环结构
  • 个人博客测试报告
  • 金融小知识:股指期货交割日时间是每月几号?
  • LSTM-SVM故障诊断 | 基于长短期记忆神经网络-支持向量机多特征分类预测/故障诊断Matlab代码实现
  • python学opencv|读取图像(七十五)人脸识别:Fisherfaces算法和LBPH算法
  • SpringBoot 中封装 Cors 自动配置
  • cv2库的使用及图像预处理02
  • 如何快速在项目中集成AI功能:AI信箱工具使用
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_pool_t 类型
  • C++笔记之标准库中用于处理迭代器的`std::advance`和`std::distance`
  • Rust中的collections
  • DeepSeek在学术读写翻译中的独特优势
  • Spring容器扩展点
  • 无线网络数字孪生(Digital Twin for Wireless Networks)
  • Node.js中不支持require和import两种导入模块的混用
  • 进阶——第十六届蓝桥杯嵌入式熟练度练习(eeprom的读写)
  • 【Unity精品插件】NGUI:UI设计传奇工具
  • 动态规划 之 划分型DP
  • 【Java】泛型与集合篇(四)
  • 乌外长:乌方准备无条件停火至少30天
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 陕西永寿4岁女童被蜜蜂蜇伤致死,当地镇政府介入处理
  • 纽约大学朗格尼医学中心的转型带来哪些启示?
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 咖啡戏剧节举办第五年,上生新所“无店不咖啡,空间皆可戏”