while true 死循环判断端口按顺序启动应用
2018-08-05 11:56
141 查看
需求: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)
相关文章推荐
- 当启动应用中出现“Jboss端口已经启动了”
- SharedPreferences记住用户密码 态判断应用是否首次启动等
- 判断当前应用是否启动/是否在前台
- ios判断用户第一次启动和怎么修改或添加应用的图标
- 解决tomcat启动Socket监听端口死循环被hold问题
- Websphere应用启动失败,报端口冲突的错误的解决方法
- Resin 在同一台机器不同端口启动两个应用
- RCP应用启动关闭顺序
- Windows server利用批处理脚本判断端口启动tomcat的方法
- Tomcat5的web应用启动顺序详解
- c语言:顺序栈的应用(二) 判断回文数
- 判断一个应用是否在运行,卸载应用,从一个应用启动另一个应用
- android 之判断某个应用是否已经启动
- lvs应用:利用脚本判断端口存活
- 作业三4-应用分支与循环结构解决问题——判断年份是否为闰年
- myclipes+tomcat6+mysql5(linux)环境下tomcat启动应用出现死循环
- Tomcat5的web应用启动顺序详解
- web页面判断是否安装某app,从web启动app应用
- Android开发:判断应用第一次启动(精简代码版)
- 判断应用是否第一次启动并为其设置用户指导界面