【经验总结】部署多个相同实例启动故障

    技术2022-05-12  35

    部署多个相同实例启动故障

    By Leo

     

        上周日在某业务模块xxx后端上面综合部署了另一业务模块后端xxx2xxx2是我手动部署的,当时也没有问题,新部署的业务也正常。但昨日xxx业务模块迁移发布重启时,xxx怎么也起不来,一直不停重启,后来停掉xxx2xxx就可以起来。今天查找问题的原因时发现,xxx2/bin下面的 dog.shallkill.sh 没有修改路径和端口,但修改了之后xxx还是起不来。

     

        先看下xxx/bin下面脚本的关系

        一、监控脚本dog.sh判断进程不存在,调用xxx_restart.sh脚本重启进程;

        二、xxx_restart.sh先执行allkill.sh 脚本killxxx,然后执行xxx_start.sh脚本启动tac

        三、xxx_start.sh脚本调用start.sh启动xxx

     

        Start.sh脚本也要判断tac是否存在,如下代码

            XXX_HOME="/usr/local/app/xxx"

            CNT=`ps axw | grep "$XXX_HOME" |grep "$main_class" | grep -v grep | wc -l`

     

        执行重启命令看到提示如下:

            $./kill.sh;xxx_start.sh;

            $/usr/local/app/xxx/   not running

            $/usr/local/app/xxx    already started ….    

     

        从这里足以看出原因,start.sh 判断xxx2存在,包含了xxx,脚本就认为xxx正常,后面就不执行启动操作了。当然当killxxx2之后,xxx就可以起来,之后xxx2启动也没有问题。

     

        修改start.sh脚本如下,恢复正常。

            XXX_HOME="/usr/local/app/xxx/

     

        

    总结下:

        一、自动化部署,避免手工部署

        二、同一机器部署多个同类型业务模块时,比如多个resinbin下的脚本要详细检查

        三、“/”,引以为鉴

     

    本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)


    最新回复(0)