2023年11月26日发(作者:)
SpringBoot学习(番外篇⼀)------使⽤shell命令或bat⽂件优雅启动Sp。。。
SpringBoot学习(番外篇)------使⽤shell命令或bat⽂件优雅启动SpringBoot项⽬
前⾔
在之前的博⽂中,我们⼀起探究了SpringBoot的使⽤以及和通⽤的技术栈进⾏整合,使⽤SpringBoot开发确实⾮常的便利.那么我们在开发完
成了SpringBoot应⽤,并打包成jar以后,就要在Linux或者Windos Server服务器部署,⼀般来说我们可以使⽤的⽅式来运⾏,
java -jar
但是这样做显的很不专业.在本篇博⽂中,我们将使⽤shell脚本的⽅式来部署SpringBoot应⽤.
正⽂
⾸先我们有⼀个已经打包好的SpringBoot的jar包:
下⾯将通过linux和windos两个不同的服务器来说明
Linux(CentOS)
1. 使⽤两个shell脚本来启动和关闭
在linux下,我们可以通过shell脚本的⽅式来优雅的启动或者关闭SpringBoot应⽤.
⾸先,我们将应⽤的jar包上传到服务器的指定⽬录,这⾥我将其上传到这个⽬录下.
/opt/laojunshan
现在我们来开始编写shell脚本:
1. 使⽤vim命令创建⼀个shell脚本⽂件
#,,
创建⼀个脚本⽂件如果⽂件已经存在则打开该⽂件
vim
2. 在⽂件中输⼊脚本内容:
下⾯命令中的代表将控制台的⽇志输出到当前⽬录下.
#!/bin/bash
nohup java -jar 2>&1 &
保存退出,⼀个启动的shell脚本就完成啦!
3. ⽤同样的⽅式创建并编写⼀个关闭的shell脚本
#
创建⼀个关闭应⽤的脚本
vim
脚本的内容如下:
#!/bin/bash
PID=$(ps -ef | grep | grep -v grep | awk '{ print $2 }')
if [ ${PID} ];
then
echo 'Application '
echo kill $PID DONE
kill $PID
else
echo 'Application is '
fi
4. 完成了以上步骤以后,我们可以看到,两个shell脚本是灰⾊的:
此时我们的脚本还是不能⽤的,必须要给两个脚本相应的执⾏权限,我们通过下⾯的命令来给两个脚本权限:
#
使脚本具有执⾏权限
chmod +x ./
chmod +x ./
赋予权限以后的shell脚本就变成了绿⾊:
5. 运⾏shell脚本
现在我们的shell脚本都写完了,下⾯就可以通过shell脚本来优雅的启动springboot应⽤了
#springbootjar
启动的
./
运⾏这个命令以后,会出现如下界⾯:
说明程序已经运⾏了,这个时候光标还是在运⾏状态的,我们可以来跳出,此时程序还是在后台运⾏的.
#!/bin/sh
## java env
export JAVA_HOME=/opt/java/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
API_NAME=laojunshan-demo-0.0.1-SNAPSHOT
JAR_NAME=$API_NAME.jar
#PID PID
代表是⽂件
PID=$API_NAME.pid
#
使⽤说明,⽤来提⽰输⼊参数
usage() {
echo "Usage: sh 执⾏脚本.sh [start|stop|restart|status]"
exit 1
}
#
检查程序是否在运⾏
is_exist(){
pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
#10
如果不存在返回,存在返回
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
以上脚本在使⽤的时候要修改⼀下两个地⽅:
1. JDK的位置修改成你⾃⼰服务器的位置
2. API_NAME的值要修改成jar应⽤的名字
3. 别忘了赋予脚本权限
编写并且赋权以后,还是在jar⽬录下运⾏脚本:
#
查看应⽤状态
sh status
#
启动应⽤
sh start
#
关闭应⽤
sh stop
#
重启应⽤
sh restart
运⾏以上命令就可以对应⽤进⾏⾃由的启动和关闭…
Windows Server下使⽤bat脚本启动关闭应⽤
有的时候,服务器不⼀定是linux环境,如果是Windos Server服务器,我们也可以使⽤bat叫本来对服务进⾏启动和关闭
如果在Windos下使⽤sh脚本也是可以的,不过要安装git才可以哦
1. 运⾏后出现窗⼝,窗⼝关闭后服务关闭
脚本如下:
@echo off
java -jar
@pause
这种⽅式启动的时候,会有个DOS窗⼝⼀直存在,如果关闭了窗⼝,对应的java服务也就关闭了
2. 运⾏后没有窗⼝,服务在后台启动,关闭需要结束对应的进程
脚本如下:
@echo off
set path=D:JAVAjdk1.8.0_40jrebin
START "laojunshan" "%path%javaw" -jar
pause
这个脚本需要指定JDK路径,修改jar名称以后,运⾏脚本,窗⼝会关闭,但是服务是不会关闭的.要关闭服务,只需要在任务管理器关闭对应的进程
(⼀般是java进程)
总结


发布评论