mkdir -p /opt/java62/app
编译jar包:java -jar helloworld-1.0-SNAPSHOT.jar
使用浏览器进行访问:http://192.168.138.100/hello
缺点:启动SpringBoot项目后会占用一个窗口,一旦窗口关闭,则这个SpringBoot项目对应的进程就会被杀掉,外部就无法访问了
3.1 利用nohup后台启动:nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &
nohup命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg … ] [&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:
nohup java -jar boot工程.jar &> hello.log &
上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
3.2 监控日志:tail -f hello.log
3.3 浏览器访问:http://192.168.138.100/hello
关闭窗口后,因为是后台运行,所以不会停止springboot应用,依旧可以对外提供访问
进入到要克隆的目录路径下:cd /opt/java62
上传 shell 脚本到 /opt/java62 目录下(即与项目放在同一个目录中)
shell是linux中的一种开发语言,以sh为后缀名
#!/bin/sh echo ================================= echo 自动化部署脚本启动 echo ================================= echo 停止原来运行中的工程 # APP_NAME 项目的名称(===========需要修改===========) APP_NAME=helloworld tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 2 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi echo 准备从Git仓库拉取最新代码 # /opt/java62/helloworld 仓库名称 地址码云拉项目的文件夹(===========需要修改===========) cd /opt/java62/helloworld echo 开始从Git仓库拉取最新代码 git pull echo 代码拉取完成 echo 开始打包 output=`mvn clean package -Dmaven.test.skip=true` cd target echo 启动项目 # jar包的名称(===========需要修改===========) nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log & echo 项目启动完成
chmod 777 bootStart.sh
为所有的用户都授权 读写执行 的权限
第一个7:表示授予当前用户对文件权限
第二个7:表示授予当前用户同组内的用户对文件权限
第三个7:表示授予其他用户对文件权限
./bootStart.sh
自此本地更新代码,上传到git,服务器自动执行shell脚本,拉取代码,运行应用。