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 doss -lntp|grep 8761 >>/dev/nullif [ $? = 0 ];thenecho "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 doss -lntp|grep 8761 >>/dev/nullif [ $? = 0 ];then cd /fs01/spring-cloud/pay/acc-settle/ && ./start.shbreak;fi done while true doss -lntp|grep 8762 >>/dev/nullif [ $? = 0 ];thenecho "acc-settle更新成功!!" cd /fs01/spring-cloud/paypre/ && ./start.shbreak;fi done while true doss -lntp|grep 8763 >>/dev/nullif [ $? = 0 ];then echo "全部更新完毕,请检查应用日志是否正常!!"break;fi done mv /tmp1/${FILE} /tmp1/${FILE}_$(date +%Y%m%d%H%M)
转载于:https://www.cnblogs.com/Dev0ps/p/9425016.html
while true 死循环判断端口按顺序启动应用相关推荐
- Python判断端口服务是否启动
如果一个进程启动多个服务,就需要应用端口判断的方法判断服务是否正常. def check_servers(self):logger.debug("Check honeypot server ...
- bat脚本监控tomcat并启动_Windows server利用批处理脚本判断端口启动tomcat的方法
win server服务器上面的tomcat老是不定时挂掉, 于是利用定时操作脚本判断tomcat80端口是否在运行, 如果运行则放过, 如果down掉就启动tomcat,解决tomcat不定时挂掉导 ...
- SharedPreferences记住用户密码 态判断应用是否首次启动等
一.Android SharedPreferences的简介 SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用 ...
- 怎么判断linux22端口是否通,在Linux环境下使用SSH判断端口是否通(示例代码)
在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...
- Android判断app是不是第一次启动
判断APP是不是第一次启动 基本思路就是,在第一次启动APP的时候,在本地保存一个布尔数据进行记录.如果是第一次启动保存为true,然后进行判断,如果是true,则提示是第一次启动并且修改为false ...
- java中if中的true和false_java中if(true)这个判断语句啥意思?能举例说明呢? Java中if(bool...
java中这句话的意思是会执行if里面的东西,例如: int abc;\t\tif(true) \t\t{\t\t\t abc=0;\t\t}\t\telse\t\t{\t\t\tabc=1;\t\t ...
- linux上测试ssh是否通,在Linux环境下使用SSH判断端口是否通
在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...
- linux下测试端口 ssh,在Linux环境下使用SSH判断端口是否通
在Linux环境下使用SSH判断端口是否通 在windows/linux环境下,可以使用telnet判断端口状态,但有时候在Linux环境下没有telnet,所以可以使用ssh判断端口状态. 一.ss ...
- 怎么判断linux22端口是否通,判断端口通不通的几种方法
通常使用"telnet ip port"判断端口通不通. 有其它方法吗?先看下面的几种方法 准备环境 启动一个web服务器,提供端口. [wyq@localhost ~]$ pyt ...
最新文章
- python:自动化测试 playwright 库上传和下载
- 谷歌浏览器添加JSON-Handle插件
- 打造具备互补测试技能的团队
- “网工”可以跳越“网管”吗?
- [HDU]2089不要62
- 3d建模电脑配置要求_学习3D建模需要什么软件,电脑配置应该如何?新手自学会遇到的问题...
- Java_Freemarker
- why is list delete and edit icon rendered
- 苏州飘“彩云” 五年规模破百亿元
- C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
- fragment类中的点击事件空指针异常
- python图片转动漫_python实现了照片转化为动漫模式
- calendar控件使用 extjs_extjs年月选择日历及通用js同步ajax调用返回json object
- 清爽登录界面html,基于css3实现扁平简洁清爽的登录注册页面代码
- Java设计模式——建造者模式
- 树莓派人脸识别源代码
- multicast msdp 1
- 计算机网络中tdm是什么,8.1 计算机网络FDM TDM计算机网络自学笔记.pdf
- 传说之下计算机音乐大全,传说之下同人音乐
- java实现人物关系预测_用 NetworkX + Gephi + Nebula Graph 分析人物关系(上篇)