做暧暧xoxo网站,织梦网站修改教程视频教程,网络营销方式及特点,大连网站建设推广Linux#xff08;B站黑马#xff09;学习笔记
01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 05-2Linux上部署项目 文章目录 Linux#xff08;B站黑马#xff09;学习笔记前言05-2Linux上部署项目部署Springboot项目…LinuxB站黑马学习笔记
01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 05-2Linux上部署项目 文章目录 LinuxB站黑马学习笔记前言05-2Linux上部署项目部署Springboot项目手工部署通过Shell脚本自动部署项目 注 前言
LinuxB站黑马学习笔记 05-2Linux上部署项目 05-2Linux上部署项目
部署Springboot项目
案例项目瑞吉外卖
手工部署
在IDEA中将开发的SpringBoot项目并打成jar包
执行maven中的package命令
注意如果打包前已经有target目录执行打包前建议先执行clean命令确保我们打包的时候是一个干净的环境 将jar包上传到Linux服务器
mkdir /usr/local/app 创建目录可以将项目jar包放到此目录输入rz命令打开文件上传界面 在Linux项目中运行该项目jar包
java -jar reggie-0.0.1-SNAPSHOT.jar注意Linux要安装JDK才能成功运行版本要一致。另外Springboot内嵌了TomcatLinux安装了Tomcat且开着的话如果与项目内使用同一端口会造成冲突。 检查防火墙确保8080端口对外开放访问SpringBoot项目 CentOS系统默认开启了防火墙阻止外部网络流量访问系统内部 所以如果想要正常使用需要对8080端口进行放行 放行有2种操作方式 关闭防火墙 配置防火墙规则放行端口 # 以下操作2选一即可
# 方式1关闭防火墙
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 停止防火墙开机自启# 方式2放行8080端口的外部访问
firewall-cmd --add-port8080/tcp --permanent # --add-port8080/tcp表示放行8080端口的tcp访问--permanent表示永久生效
firewall-cmd --reload # 重新载入防火墙规则使其生效方便起见建议同学们选择方式1直接关闭防火墙一劳永逸 且防火墙的配置非常复杂 测试访问 改为后台运行SpringBoot程序并将日志输出到日志文件
目前程序运行的问题程序在终端采用霸屏形式运行关闭终端程序也跟着关闭了
线上程序不会采用控制台霸屏的形式运行程序而是将程序在后台运行线上程序不会将日志输出到控制台而是输出到日志文件方便运维查阅信息 nohup java -jar boot工程.jar 日志文件.log 后台运行java -jar命令并将日志输出到日志文件nohup java -Xms32m -Xmx64m -jar boot工程.jar 日志文件.log nohup: 表示忽略挂断信号保持程序在后台运行。java: 运行Java程序的命令。-Xms32m -Xmx64m: 设置Java虚拟机的初始堆大小为32MB最大堆大小为64MB。-jar boot工程.jar: 指定要运行的Java程序的JAR文件路径。日志文件.log: 将标准输出和标准错误重定向到日志文件.log文件中。: 将程序放入后台运行。 停止SpringBoot程序
停止springboot程序需要通过杀进程的方式找到对应的进程杀掉就行
ps -ef | gref java -jar 查看进程
kill -9 进程号 杀死进程 通过Shell脚本自动部署项目
操作步骤: 在Linux中安装Git 在Linux中安装maven 编写Shell脚本可以实现拉取代码、编译、打包、启动 为用户授予执行Shell脚本的权限 执行shell脚本
在Linux中安装Git、maven请看【Linux学习】05-1Linux上安装部署各类软件
使用Git克隆代码 编写Shell脚本
#!/bin/sh
echo
echo 自动化部署脚本启动
echo echo 停止原来运行中的工程
APP_NAMEreggietpidps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk {print $2}
if [ ${tpid} ]; thenecho Stop Process...kill -15 $tpid
fi
sleep 2
tpidps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk {print $2}
if [ ${tpid} ]; thenecho Kill Process...kill -9 $tpid
elseecho Stop Success!
fiecho 准备从Git仓库拉去最新代码
cd /usr/local/reggieecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成echo 开始打包
outputmvn clean package -Dmaven.test.skiptruecd targetecho 启动项目
nohup java -jar reggie-0.0.1-SNAPSHOT.jar reggie.log
echo 项目启动完成此脚本其实就是自动执行杀掉运行中的进程再进入到本地git仓库中从远程下拉代码自动打包执行。
在Linux中编辑此脚本 执行 vim bookStart.sh 后手动将脚本内容复制进去。 为用户授权
只用文件的所有者和超级用户可以修改文件或目录的权限
要执行Shell脚本需要有对此脚本文件的执行权限如果没有则不能执行 chmod 777 bookStart.sh # 为所有用户授予读、写、执行权限执行脚本文件
./bookStart.sh # 执行脚本文件跟踪查看日志文件
tail -f /usr/local/reggie/target/reggie.log # 跟踪查看日志文件至此项目成功通过shell脚本实现在Linux自动部署 注
该内容是根据B站黑马程序员学习时所记相关资料可在B站查询黑马程序员新版Linux零基础快速入门到精通全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等