网站开发 开源,做网站有没有受骗过,项目营销推广策划,织梦如何修改网站内容我们都知道#xff0c;在开发的过程中#xff0c;有很多部署自己微服务的方式#xff0c;其中有各种各样的不同操作#xff0c;比如使用 docker 打包为镜像的方式#xff0c;还有基础使用 jar 包的方式进行部署#xff0c;但是呢#xff1f;使用 jar 包部署#xff0c;…我们都知道在开发的过程中有很多部署自己微服务的方式其中有各种各样的不同操作比如使用 docker 打包为镜像的方式还有基础使用 jar 包的方式进行部署但是呢使用 jar 包部署那就离不开这个启动 jar 包的脚本命令总不能每次都是直接自己手动杀端口然后再重新启动吧今天了不起来带大家看一下这个 Shell 脚本并且写一个 Shell 脚本通用给大家拿来可用。 如果想直接拿这个脚本改一下用的不想看这个基础内容的可以直接拉到最后了。、
查看自己当前系统默认的 Shell
echo $SHELL
输出/bin/bash查看系统支持的Shell
cat /etc/shells
输出
/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash也就是说我们的云服务器是支持我们在这里给他安排 Shell 脚本的 我们这时候先来安排一下 sh 的文件,创建一个文件夹然后在其中创建一个 sh 的文件。
mkdir /usr/local/shelltesttouch test.sh创建完成我们编辑一下内容
vim test.sh#!/bin/bash
echo Hello World Shell然后我们出来运行一下我们的 Shell 的第一个脚
bash test.sh
出来的结果是 Hello World Shell.我们知道其实 Shell脚本没那么复杂一个启动 jar 包的启动可能用到的用法就一些我们来看一下另外的几个必备的语法
if ...
then...
else...
fi接下来我们看一段脚本来根据脚本分析
start() {echo pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})if [ -z $pid ]; thencd $jar_path # 这里转到jar包目录执行命令是为了使用jar_path下的config文件貌似java程序只能识别当前执行命令目录下的配置否则就是使用已打入Jar包的配置文件。nohup java -jar $jar_name $log_path 21 pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})echo 应用 ${jar_name}启动成功pid${pid}# tail -f $log_pathelseecho 应用 ${jar_name} 正在运行pid ${pid}fiecho
}start() 顾名思义这明显就是一个 start 方法方法体的内容则是花括号内的内容。
echo 我们都知道了就是输出个内容
ps -ef | grep这个命令更不用多说了那直接就是用来查询应用的端口号的后面跟着我们的jar_name 实际上就是一个变量直接获取的我们在方法外面定义的
后面的awk其实就相当于是信息的读入
也就是说我们在执行 sh start.sh start 的方法的时候然后会读取我们接下来输入的内容接下来就进入了判断环节。 cd $jar_path # 这里转到jar包目录执行命令是为了使用jar_path下的config文件貌似java程序只能识别当前执行命令目录下的配置否则就是使用已打入Jar包的配置文件。nohup java -jar $jar_name $log_path 21 这个则是我们最重要的启动Jar包的版本nohup 这个命令的标识则是我们使用后台启动的方式不必再关注如果执行jar -jar 的时候我们关闭了当前的窗口结果我们的服务就被迫终止了而后面我们还贴心的又查询了一下这个服务然后把我们的服务是否启动成功给大家展示出来如果运行之后就会出现 应用xxx启动成功pid xxxxx的标志了。
看完了我们的启动命令接下来就得看我们的停止命令了。
stop() {echo pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})if [ -z $pid ]; then # -z 是判断是否为空echo ${jar_name}未运行elseecho 准备关闭进程$pidkill -9 $pidsleep 0.5echo ${jar_name}已关闭fiecho
}这个stop的方法几句比较简单了接受收入内容然后判断这个 jar 包是否在运行当中如果运行的话那么找到这个端口然后关闭到这个进程号最后给我们输出一个 xxxx已关闭 我们再来看一个重启的方法
restart() {stopsleep 2echo 停止完成准备启动jar包start
}这个更不用说了我们写了 start 和 stop 只要在这个 restart里面去执行一下这个 stop 然后等待一会然后再启动就完事了。
完整的脚本如下
#替换成你的jar包
jar_namecloud-ui-zhiyikeji.jar
jar_path/usr/webjar/
log_path/usr/webjar/logs/date %y-%m-%d_out.log
#指向自定义jdk
#export JAVA_HOME/usr/jdk/jdk1.8.0_381
#export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#export PATH$JAVA_HOME/bin:$PATH
stop() {echo pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})if [ -z $pid ]; then # -z 是判断是否为空echo ${jar_name}未运行elseecho 准备关闭进程$pidkill -9 $pidsleep 0.5echo ${jar_name}已关闭fiecho
}start() {echo pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})if [ -z $pid ]; thencd $jar_path # 这里转到jar包目录执行命令是为了使用jar_path下的config文件貌似java程序只能识别当前执行命令目录下的配置否则就是使用已打入Jar包的配置文件。nohup java -jar $jar_name $log_path 21 pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})echo 应用 ${jar_name}启动成功pid${pid}# tail -f $log_pathelseecho 应用 ${jar_name} 正在运行pid ${pid}fiecho
}status() {echo pid$(ps -ef | grep $jar_name | grep -v grep | awk {print $2})if [ -z $pid ]; thenecho 应用 ${jar_name} 未运行elseecho 应用 ${jar_name} 正在运行pid ${pid}fiecho }
restart() {stopsleep 2echo 停止完成准备启动jar包start
}
action() {echo 请输入数字选择要执行的操作1启动2重启3停止4查看运行状态5退出echo 你输入的数字为:read acase $a in1)start;;2)restart;;3)stop;;4)status;;5)exit 1;;*)echo 输入错误请重新输入action;;esac
}
action脚本奉上我们需要做的就是更改一下前面的jar包的路径已经jar包的相关内容即可实现shell脚本来启动自己的jar包了。 希望对大家有用。