将jar包部署到CentOS7操作系统

1、手工部署项目

1、在IDEA中开发SpringBoot项目并打成jar包

(通过Maven进行打包)

(在target目录下的 jar包)

2、将jar包上传到Linux服务器

# 创建目录,将项目jar包放到此目录
mkdir /usr/local/app

具体操作步骤:

[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir app
[root@localhost local]# cd app
[root@localhost app]# rz

上传jar包

如果你使用rz上传卡住不动0%,可以退出来重新传。

检验上传是否成功:

[root@localhost app]# ll
总用量 61692
-r--------. 1 root root 63172330 5月   6 22:47 reggie_take_out-1.0-SNAPSHOT.jar

3、启动SpringBoot程序

通过  java -jar <.jar>

注意使用java -jar 运行请看以往篇章:

在CentOS7系统中安装JAVA JDK1.8_centos7 java1.8-CSDN博客

[root@localhost app]# java -jar reggie_take_out-1.0-SNAPSHOT.jar.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v2.4.5)2024-05-06 23:01:45.375  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : Starting ReggieApplication v1.0-SNAPSHOT using Java 1.8.0_401 on localhost.localdomain with PID 84728 (/usr/local/app/reggie_take_out-1.0-SNAPSHOT.jar started by root in /usr/local/app)
2024-05-06 23:01:45.388  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : No active profile set, falling back to default profiles: default
2024-05-06 23:01:50.835  INFO 84728 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2024-05-06 23:01:50.920  INFO 84728 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-05-06 23:01:50.920  INFO 84728 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.45]
2024-05-06 23:01:51.113  INFO 84728 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-05-06 23:01:51.114  INFO 84728 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5563 ms
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
2024-05-06 23:01:51.601  INFO 84728 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2024-05-06 23:01:52.751  INFO 84728 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
Registered plugin: 'com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor@6e509ffa'
Property 'mapperLocations' was not specified._ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ /               |         3.4.2 
2024-05-06 23:01:55.465  INFO 84728 --- [           main] com.itheima.reggie.config.WebMvcConfig   : 扩展消息转换器...
2024-05-06 23:01:55.481  INFO 84728 --- [           main] com.itheima.reggie.config.WebMvcConfig   : 开始进行静态资源映射...
2024-05-06 23:01:56.504  INFO 84728 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2024-05-06 23:01:56.525  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : Started ReggieApplication in 12.714 seconds (JVM running for 15.99)
2024-05-06 23:01:56.532  INFO 84728 --- [           main] com.itheima.reggie.ReggieApplication     : 项目启动成功...

项目启动成功,端口号8080

4、检查防火墙,确保8080端口对外开放,访问SpringBoot项目

关于防火墙的配置请看以往篇章:

防火墙操作命令: Linux 防火墙 操作命令【实用】-CSDN博客

由于我们的项目进程窗口正在运行中,我们需要另建一个标签:

 

输入 firewall-cmd --zone=public --add-port=8080/tcp --permanent 查看当前开放端口

# 查看当前开放端口
[root@localhost ~]# firewall-cmd --zone=public --list-ports
8080/tcp 3306/tcp

如果你没有查询到8080端口,那么请你按照我提供的文章进行操作。

在浏览器打开 http://192.168.23.128:8080/ 进行访问项目

可以在shell终端命令中看到拦截信息

2024-05-06 23:14:16.322  INFO 84728 --- [nio-8080-exec-6] c.i.reggie.filter.LoginCheckFilter       : 用户未登录

如果我们断开标签,就无法访问站点了

 

为了解决这个控制台霸屏运行方式,请参考以下:

5、改为后台运行SpringBoot程序,并将日志输出到日志文件

  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

# 语法格式
nohup Command [ Arg … ] [ & ]# 参数说明
Command:要执行的命令。Arg:一些参数,可以指定输出文件。&:让命令在后台执行,终端退出后命令仍旧执行。# 实例
# 以下命令在后台执行 root 目录下的 runoob.sh 脚本:
nohup /root/runoob.sh &# 在终端如果看到以下输出说明运行成功:
appending output to nohup.out# 这时我们打开 root 目录 可以看到生成了 nohup.out 文件。# 如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:
ps -aux | grep "runoob.sh" # 参数说明:
a : 显示所有程序
u : 以用户为主的格式来显示
x : 显示所有程序,不区分终端机# 另外也可以使用 ps -def | grep "runoob.sh" 命令来查找。# 找到 PID 后,就可以使用 kill PID 来删除。
kill -9  进程号PID# 以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:
nohup /root/runoob.sh > runoob.log 2>&1 &# 2>&1 解释:
# 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

 

了解了nohup后,来执行 

# 后台运行java -jar命令,并将日志输出到reggie_logs文件中
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie.log &

(执行结果)

打开刚刚的浏览器地址 http://192.168.23.128:8080/ 访问:

可以通过以下命令查看日志

# 查看运行日志
more reggie.log 

这时候再关闭或断开FinalShell标签,依然可以访问。

6、停止SpringBoot程序

请查看这篇文章,关于进程查杀:验证Tomcat进程是否启动成功 ps -ef | grep tomcat-CSDN博客

[root@localhost ~]# ps -ef | grep java
root      17918      1  2 23:42 ?        00:00:15 java -jar reggie_take_out-1.0-SNAPSHOT.jar
root      32688  32475  0 23:52 pts/0    00:00:00 grep --color=auto java
[root@localhost ~]# 

从查询结果可以看到进程id是17918

[root@localhost ~]# kill -9 17918
[root@localhost ~]# ps -ef | grep java
root      34303  32475  0 23:54 pts/0    00:00:00 grep --color=auto java
[root@localhost ~]# 

 

这时候再去访问刚刚的地址已经失效了:

如果你是瑞吉外卖请访问:http://192.168.23.128:8080/backend/page/login/login.html

说明进程已经关闭,进程服务无法进行访问了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/671797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣每日一练(螺旋矩阵)

54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,…

Android Ant编译环境配置(Win)

1、 载ant包: 2、设置环境变量&#xff1a; 3、检查是否设置成功及版本 4、执行命令&#xff1a; android update project -p . -n “projectname”&#xff08;例如&#xff1a;android update project --target 1 -p . -n “Couplet”&#xff09;(只输入红色部分也是可以的…

Liunx磁盘管理(下)

中篇&#xff1a;https://blog.csdn.net/Lzcsfg/article/details/138355036 一.逻辑卷 逻辑卷&#xff08;Logical Volume&#xff09;是逻辑卷管理 (LVM) 中的一个概念&#xff0c;它为 Linux 系统中的存储管理提供了更大的灵活性和可扩展性。LVM 允许你将物理存储设备&…

vue2 webpack-dev-server Unknown promise rejection reason

在vue.config.js中添加如下配置&#xff0c;重启项目即可 module.exports defineConfig({devServer: {client: {overlay: false,},} })参考

Ranni: Taming Text-to-Image Diffusion for Accurate Instruction Following

Ranni: Taming Text-to-Image Diffusion for Accurate Instruction Following abstract 我们引入了一个语义面板作为解码文本到图像的中间件&#xff0c;支持生成器更好地遵循指令 Related work 最近的工作还通过包含额外的条件&#xff08;如补全掩码[15&#xff0c;45]、…

社区养老服务|基于Springboot+vue的社区养老服务平台设计与实现(源码+数据库+文档)

社区养老服务平台 目录 基于Java的社区养老服务平台设计与实现 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 服务信息管理 3服务申请管理 4公告信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#…

Vue进阶之Vue项目实战(二)

Vue项目实战 构建基础框架路由 项目&#xff08; v1.0,base-app-layer&#xff09;导航 router物料编排选型 插件化插件化平时写代码场景 配置器开发 构建基础框架 路由 路由分类&#xff1a; memoryHistory&#xff1a;内存路由&#xff0c;路由信息记录在内存中&#xff0…

【NodeMCU实时天气时钟温湿度项目 2】WIFI模式设置及连接

第一专题内容&#xff0c;请参考&#xff1a; 【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计-CSDN博客 NodeMCU是一个基于乐鑫ESP8266的开源IoT物联网硬件开发平台&#xff0c;支持WIFI功能&#xff0c;使用方法简单&#xff0c;受到越来越多来…

VMware虚拟网卡网络适配器出现黄色感叹号

问题发生&#xff1a;VMware在使用Ubuntu的过程中突然卡死&#xff0c;强制关闭开启后就发生了网络无法连接 找到电脑的设备管理发现VMware的适配器出现黄色感叹号 解决方法&#xff1a; 下载软件ccleaner 扫描问题&#xff0c;懒得去找就修复了所有的问题 最后发现适配器…

WouoUIPagePC端实现

WouoUIPagePC端实现 WouoUIPage是一个与硬件平台无关&#xff0c;纯C语言的UI库&#xff08;目前只能应用于128*64的单色OLED屏幕上&#xff0c;后期会改进&#xff0c;支持更多尺寸&#xff09;。因此&#xff0c;我们可以在PC上实现它&#xff0c;本文就以在PC上使用 VScode…

Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER

目录 1. 简介 2. 示例 2.1 示例功能介绍 2.2 示例代码 2.3 顶层函数解释 2.4 综合报告&#xff08;HW Interfaces&#xff09; 2.5 关于TKEEP和TSTRB 2.6 综合报告&#xff08;SW I/O Information&#xff09; 3. 总结 1. 简介 本文通过“<Examples>/Interface…

KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记13 - STM32的SDIO学习5 - 卡的轮询读写擦

KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记13 - STM32的SDIO学习5 - 卡的轮询读写擦 一、前情提要二、目标三、技术方案3.1 读写擦的操作3.1.1 读卡操作3.1.2 写卡操作3.1.3 擦除操作 3.2 一些技术点3.2.1 轮询标志位的选择不唯一3.2.2 写和擦的卡状态查询3.2.3 写的速度 四、代…