ubuntu24 springboot jar设置宕机重启

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

使用systemd设置自动重启

创建systemd服务文件

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

bash 复制代码
sudo vi /etc/systemd/system/myapp.service

编辑服务文件

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

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

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable myapp.service

启动服务

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

bash 复制代码
sudo systemctl start myapp.service

检查服务状态

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

bash 复制代码
sudo systemctl status myapp.service

查看日志(如果配置了)

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

bash 复制代码
cat /var/log/myapp/output.log
cat /var/log/myapp/error.log

实时查看

bash 复制代码
tail -f /var/log/myapp/output.log
tail -f /var/log/myapp/error.log

停止服务

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

bash 复制代码
sudo systemctl stop myapp.service

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

相关推荐
小阳睡不醒3 小时前
小白成长之路-部署Zabbix7(二)
android·运维
杰克逊的日记3 小时前
GPU运维常见问题处理
linux·运维·gpu
caolib3 小时前
无需云服务器的内网穿透方案 -- cloudflare tunnel
运维·服务器·内网穿透·tunnel·cloudflared
奇舞精选3 小时前
k8s基本概念初探
运维
誰能久伴不乏4 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔4 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
-SGlow-4 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw5 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
Dreams_l5 小时前
网络编程2(应用层协议,传输层协议)
运维·服务器·网络
勇哥的编程江湖6 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器