while true 死循环判断端口按顺序启动应用
需求:spring微服务应用启动较慢并且要求一个应用启完才能启第二个应用。
思路:加了个while true 死循环判断端口启动了才启下一个应用。
执行方式:/appupgrade/spring_cloud/pay.sh xxx
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
BUCKUP_DIR=/fs01/backup/spring-cloud/pay/$(date +%Y%m%d%H%M)
PAYPRE_DIR=/fs01/spring-cloud/paypre
APPLY_DIR=/fs01/spring-cloud/pay/acc-apply
SETTLE_DIR=/fs01/spring-cloud/pay/acc-settle
FILE=$1
if [ ! -f ${APPLY_DIR}/${FILE} ];then
echo "/tmp1/${FILE} This directory does not exist.Please check it!"
exit 0
fi
echo "开始更新应用,请勿操作等待更新完毕!!"
ps aux|grep pay-front|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${PAYPRE_DIR}/app.pid
sleep 10
ps aux|grep acc-apply|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${APPLY_DIR}/app.pid
sleep 3
ps aux|grep acc-settle|grep -v grep |awk '{print $2}'|xargs kill -9
rm -fr ${SETTLE_DIR}/app.pid \/bin/cp /tmp1/$1 ${APPLY_DIR}
[ -z ${BUCKUP_DIR} ] || /bin/mkdir -p ${BUCKUP_DIR}
cd ${APPLY_DIR}
tar -cf ${BUCKUP_DIR}/apply.tar BOOT-INF/ META-INF/
cd ${SETTLE_DIR}
tar -cf ${BUCKUP_DIR}/settle.tar BOOT-INF/ META-INF/
#更新acc-apply
cd ${APPLY_DIR}/BOOT-INF/classes/
/bin/mv bootstrap.yml db.properties paylink.properties ../
cd ${APPLY_DIR}
/usr/java/jdk1.8.0_111/bin/jar -xf ${APPLY_DIR}/${FILE}
cd ${APPLY_DIR}/BOOT-INF/classes/
\/bin/mv ../bootstrap.yml ../db.properties ../paylink.properties ./
/bin/chown -R tomcat8:tomcatg /fs01/spring-cloud/pay/acc-apply
cd /fs01/spring-cloud/pay/acc-apply/ && ./start.sh
sleep 3
while true
do
ss -lntp|grep 8761 >>/dev/null
if [ $? = 0 ];then
echo "acc-apply更新成功!!"
break;
fi
done
#更新acc-settle
\/bin/cp ${APPLY_DIR}/${FILE} ${SETTLE_DIR}
cd ${SETTLE_DIR}/BOOT-INF/classes/
/bin/mv bootstrap.yml db.properties paylink.properties ../
cd ${SETTLE_DIR}
/usr/java/jdk1.8.0_111/bin/jar -xf ${SETTLE_DIR}/${FILE}
cd ${SETTLE_DIR}/BOOT-INF/classes/
\/bin/mv ../bootstrap.yml ../db.properties ../paylink.properties ./
/bin/chown -R tomcat8:tomcatg /fs01/spring-cloud/pay/acc-settle
while true
do
ss -lntp|grep 8761 >>/dev/null
if [ $? = 0 ];then
cd /fs01/spring-cloud/pay/acc-settle/ && ./start.sh
break;
fi
done
while true
do
ss -lntp|grep 8762 >>/dev/null
if [ $? = 0 ];then
echo "acc-settle更新成功!!"
cd /fs01/spring-cloud/paypre/ && ./start.sh
break;
fi
done
while true
do
ss -lntp|grep 8763 >>/dev/null
if [ $? = 0 ];then
echo "全部更新完毕,请检查应用日志是否正常!!"
break;
fi
done
mv /tmp1/${FILE} /tmp1/${FILE}_$(date +%Y%m%d%H%M)
while true 死循环判断端口按顺序启动应用的更多相关文章
- Docker-compose编排微服务顺序启动
一.概述 docker-compose可以方便组合多个 docker 容器服务, 但是, 当容器服务之间存在依赖关系时, docker-compose 并不能保证服务的启动顺序.docker-comp ...
- arm:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程
一.nand启动和nor启动:[1] CPU从0x00000000位置开始运行程序. 1.nand启动: 如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM ...
- while True 死循环
while True 死循环示例: count = 0 #给count设置变量为0 while True: count += 1 #每循环一次,count+1 : count += 1 等同于coun ...
- Linux开机启动顺序启动顺序及配置开机启动
Linux:开机启动顺序启动顺序及配置开机启动 开机启动顺序 1.加载内核 2.启动 init(/etc/inittab) pid=1 3.系统初始化 /etc/rc.d/rc.sysinit 4.运 ...
- c# 线程启动while(true) 死循环,里边的return导致线程退出情况,查错
写了一个线程 线程下启动了一个循环 while(true) { 里边有个判断 如果为空不操作, 有余这个线程是后加的,老程序里边因为有个return没关注,导致线程退出而不能不听的监控 } 线程启动一 ...
- Windows server利用批处理脚本判断端口, 启动tomcat
win server服务器上面的tomcat老是不定时挂掉, 于是利用定时操作脚本判断tomcat80端口是否在运行, 如果运行则放过, 如果down掉就启动tomcat,解决tomcat不定时挂掉导 ...
- aix7安装was7、打补丁、更改访问端口、手动启动was、配置was7、部署项目
1:准备工作 首先了解下我们下面即将用到的aix命令,以及安装包.补丁安装工具.补丁 was7的安装包以及补丁工具都是压缩包形式并且以.tar.gz结尾的 安装包在800MB左右,通常为****_w ...
- 【问题解决:未找到端口号】启动报错Circular placeholder reference 'server.port' in property definitions
问题描述: 启动spring boot项目时报错:Circular placeholder reference 'server.port' in property definitions 解决过程: ...
- Android笔记——判断程序是否第一次启动
public class Welcome extends Activity { private final long SPLASH_LENGTH = 2000; Handler handler = n ...
随机推荐
- 文件操作命令(del)
del 命令: // 描述: 删除一个或多个文件.同等于 erase 命令. 相比较 rd 命令来说,del 命令只能删除文件,不能删除文件夹. // 语法: del [/p] [/f] [/s] [ ...
- java中产生HttpServletRequest等作用域
protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...
- js url参数解析获取
function get_url_parm_list(str){ var params=str.substr(str.indexOf('?')+1); var param_list=[]; while ...
- ubuntu安装qq、微信
非让用企业微信,于是,,我屈服了 https://www.coder4.com/archives/6241 https://github.com/wszqkzqk/deepin-wine-ubuntu
- jquery学习总结1-12
一.jquery入口函数的几种写法 1.$(document).ready(function() { } ) ; 2.jquery(document).ready(function() { } ) ...
- xml文档格式学习笔记
xml入门经典 (pdf书籍) https://www.cnblogs.com/zhaopengcheng/p/6848802.html
- python turtle库
turtle库初步 先看 https://www.cnblogs.com/chy8/p/9448606.html 一 turtle库介绍 turtle乌龟 import turtle from tur ...
- jdk1.8.0环境变量设置
jdk1.8.0环境变量设置 1.jdk安装完毕 打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa ...
- impala教学视频
https://www.iqiyi.com/playlist394935102.html
- Stacking Plates(存档待续.....(没有写思路和程序))
问题描述 盘子装运公司是一家网络零售商,顾名思义,是一家只销售盘子的公司.该公司销售的盘子由不计其数的生产厂商提供,品种是全宇宙最多的,为此公司的员工倍感自豪. 在最近的一次成本分析中,公司员工发现, ...