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