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

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

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合作,联系我们:[email protected]

你可能感兴趣的:(数据库,负载均衡,数据挖掘,脚本,kill,开放平台)