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

相关推荐
草莓熊Lotso2 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑2 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
七夜zippoe10 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64812 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满12 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠12 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90312 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技13 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀14 小时前
Linux环境变量
linux·运维·服务器
zzzsde14 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器