type
status
date
summary
slug
tags
category
password
icon
Linux中启动SpringBoot分为前台启动后台启动
  • 前台启动是指通过命令直接运行SpringBoot项目JAR包,并且运行打印日志直接显示在我们所看到的前台,页面一旦关闭就会停止或改变;
  • 而后台启动则是通过命令或脚本启动SpringBoot项目,是项目能够独立的在后台运行,不会打扰我们其他操作。
这里介绍的是以服务的形式后台启动Java项目。

一、Java项目设置为系统服务

以下是在CentOS 7环境下将Spring Boot项目打包成服务的步骤:

1.创建 Systemd 单元文件

  • /etc/systemd/system 目录下创建一个新的服务单元文件
  • 命名为 springboot_trans_price.service,并使用文本编辑器打开它:
然后将以下内容粘贴到文件中:
确保替换以下内容:
  • Description:服务的描述。
  • User:希望服务运行的用户。
  • Group:希望服务运行的用户组。
  • WorkingDirectory:Spring Boot 项目的目录。
  • ExecStart:启动命令,这里是运行 Java JAR 文件的路径。

2.重新加载 Systemd 配置

保存并关闭文件后,重新加载 Systemd 配置:

3.启动服务

现在可以使用以下命令启动服务:

4.启用开机自启动(可选):

如果希望服务在系统启动时自动启动,可以运行以下命令启用自启动:
  • 现在,可以使用systemctl来以服务的方式操作项目了

5.查看日志

  • 查看该服务日志
  • 筛选2024年5月1号到5月31号的springboot_trans_price服务日志并显示最近20条记录
  • 导出所有日志
springboot_trans_price.service 服务的所有日志导出到一个文件,例如 springboot_logs.txt
  • 导出特定时间范围的日志,例如过去一小时内的日志:
  • 导出某个特定日期的日志:
  • 导出并压缩日志
如果日志文件比较大,可以直接将其导出并压缩:
  • 导出并附加到现有文件
如果你想将日志附加到一个现有文件中,可以使用 >>

6.查看服务

可以使用 systemctl list-units 命令结合一些过滤选项来查看系统中所有的 systemd 服务。
具体来说,使用 systemctl list-units --type=service 来列出所有服务,然后使用 grep 进行进一步过滤。例如,要查找所有包含特定关键词(如 "springboot")的服务,可以使用以下命令:
如果你想查看所有正在运行的服务,可以使用:

二、通过脚本来执行java项目

为了实现在后台运行一个 Java 可执行文件,即使关闭终端也能保持该程序的执行,可以创建一个shell脚本。
可以按照以下步骤创建一个 shell 脚本文件来启动你的 Spring Boot 项目的 JAR 文件:

1.打开终端窗口

2.创建脚本文件

使用文本编辑器创建一个新的 shell 脚本文件,例如 springboot_trans_price.sh

3.后台启动

在打开的编辑器中,输入以下内容:
确保替换 /opt/interface/springboot_trans_price.jar 为 Spring Boot 项目 JAR 文件的实际路径;
并将 /opt/interface/springboot_trans_price.log 替换为希望将输出日志写入的位置。

4.保存并关闭编辑器

  • nano 编辑器中,你可以按下 Ctrl + X,然后输入 Y 确认保存,最后按下 Enter 退出编辑器。
  • vim 编辑器中,你可以按下 :,然后输入 w 确认保存,最后按下 q 退出编辑器。

5.赋予脚本可执行权限

接下来,使用 chmod 命令赋予该脚本文件可执行权限:

6.启动脚本

最后,执行该脚本文件来启动 Spring Boot 项目:
  • 这样,就创建了一个 shell 脚本文件,其中包含使用 nohupjava -jar 命令启动 Spring Boot 项目的 JAR 文件的指令。
  • 同时,该脚本会将输出日志写入指定的日志文件中,并且该脚本还会在后台运行项目。
个人比较推荐第二种方法,因为可以灵活的配置日志输出的地方,方便查看日志。
Cloudflare Workers 配置 Docker 加速Apache DolphinScheduler中ZK与CDH不兼容问题的解决方案
Loading...